diff options
author | Zqiang <qiang1.zhang@intel.com> | 2022-03-31 08:57:17 +0300 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2022-04-22 01:31:04 +0300 |
commit | 10a5a651e3afc9b0b381f47e8930972e4e918397 (patch) | |
tree | ac78c403db8f5343539c1035aef9a0fb73f27a69 | |
parent | 59f0c2447e2553b0918b4a9fd38763a5c0587d02 (diff) | |
download | linux-10a5a651e3afc9b0b381f47e8930972e4e918397.tar.xz |
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: Zqiang <qiang1.zhang@intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r-- | kernel/workqueue.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 0d2514b4ff0d..4056f2a3f9d5 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5001,7 +5001,7 @@ static void unbind_workers(int cpu) for_each_pool_worker(worker, pool) { 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); |