Re: [PATCH 3/4] workqueue: Tag bound workers with KTHREAD_IS_PER_CPU

From: Valentin Schneider
Date: Tue Jan 12 2021 - 12:58:15 EST


On 12/01/21 15:43, Peter Zijlstra wrote:
> @@ -4919,8 +4922,10 @@ static void unbind_workers(int cpu)
>
> raw_spin_unlock_irq(&pool->lock);
>
> - for_each_pool_worker(worker, pool)
> + for_each_pool_worker(worker, pool) {
> + kthread_set_per_cpu(worker->task, false);
> WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_possible_mask) < 0);
> + }

Doesn't this supersede patch 1? With patch 4 on top, the BALANCE_PUSH
stuff should start resetting the affinity of the kworkers for which we
are removing the IS_PER_CPU flag.

It's the only nit I have, the rest looks good to me so:

Reviewed-by: Valentin Schneider <valentin.schneider@xxxxxxx>

I'll go frob that sched_cpu_dying() warning.