Messages in this thread | | | Date | Wed, 6 Jun 2018 20:59:20 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v1] kthread/smpboot: Serialize kthread parking against wakeup |
| |
On Wed, Jun 06, 2018 at 03:51:16PM +0200, Oleg Nesterov wrote: > IIUC, this will only affect smpboot_update_cpumask_percpu_thread() which can hit > an already parked thread, but it doesn't need to wait. > > And it seems that smpboot_update_cpumask_percpu_thread() in turn needs some cleanups. > Hmm. and its single user: kernel/watchdog.c. > > And speaking of watchdog.c, can't we simply kill the "watchdog/%u" threads? This is > off-topic, but can't watchdog_timer_fn() use stop_one_cpu_nowait(watchdog) ? > > And I really think we should unexport kthread_park/unpark(), only smpboot_thread_fn() > should use them. kthread() should not play with __kthread_parkme(). And even > KTHREAD_SHOULD_PARK must die, I mean it should live in struct smp_hotplug_thread, > not in struct kthread. > > OK, this is off-topic too.
> And, let me repeat, can't we avoid complete_all() ?
Yes, or at least if that watchdog crap is the only user.
I have most of the patch reworking watchdog.c to use stop_one_cpu*(), and that cleans up lots -- of course, I've not tested it yet, so it could also be breaking lots :-)
| |