Skip to content

Commit

Permalink
workqueue: Restrict kworker in the offline CPU pool running on housek…
Browse files Browse the repository at this point in the history
…eeping 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>
  • Loading branch information
Zqiang authored and Tejun Heo committed Apr 21, 2022
1 parent 59f0c24 commit 10a5a65
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion kernel/workqueue.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 10a5a65

Please sign in to comment.