workqueue: Initialize wq_isolated_cpumask in workqueue_init_early()
authorChuyi Zhou <zhouchuyi@bytedance.com>
Tue, 17 Jun 2025 04:42:16 +0000 (12:42 +0800)
committerTejun Heo <tj@kernel.org>
Tue, 17 Jun 2025 18:58:29 +0000 (08:58 -1000)
commit261dce3d64021e7ec828a17b4975ce9182e54ceb
tree27fa62ce28d44e629963f5e6ad56f508bd42f047
parent4663747812d1a272312d1b95cbd128f0cdb329f2
workqueue: Initialize wq_isolated_cpumask in workqueue_init_early()

Now when isolcpus is enabled via the cmdline, wq_isolated_cpumask does
not include these isolated CPUs, even wq_unbound_cpumask has already
excluded them. It is only when we successfully configure an isolate cpuset
partition that wq_isolated_cpumask gets overwritten by
workqueue_unbound_exclude_cpumask(), including both the cmdline-specified
isolated CPUs and the isolated CPUs within the cpuset partitions.

Fix this issue by initializing wq_isolated_cpumask properly in
workqueue_init_early().

Fixes: fe28f631fa94 ("workqueue: Add workqueue_unbound_exclude_cpumask() to exclude CPUs from wq_unbound_cpumask")
Signed-off-by: Chuyi Zhou <zhouchuyi@bytedance.com>
Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c