Commit 10a5a651 authored by Zqiang's avatar Zqiang Committed by Tejun Heo

workqueue: Restrict kworker in the offline CPU pool running on housekeeping CPUs

When a CPU is going offline, all workers on the CPU's pool will have their
cpus_allowed cleared to cpu_possible_mask and can run on any CPUs including
the isolated ones. Instead, set cpus_allowed to wq_unbound_cpumask so that
the can avoid isolated CPUs.
Signed-off-by: default avatarZqiang <qiang1.zhang@intel.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 59f0c244
...@@ -5001,7 +5001,7 @@ static void unbind_workers(int cpu) ...@@ -5001,7 +5001,7 @@ static void unbind_workers(int cpu)
for_each_pool_worker(worker, pool) { for_each_pool_worker(worker, pool) {
kthread_set_per_cpu(worker->task, -1); kthread_set_per_cpu(worker->task, -1);
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_possible_mask) < 0); WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, wq_unbound_cpumask) < 0);
} }
mutex_unlock(&wq_pool_attach_mutex); mutex_unlock(&wq_pool_attach_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment