]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cgroup/cpuset: Consistently compute effective_xcpus in update_cpumasks_hier()
authorWaiman Long <longman@redhat.com>
Mon, 12 Jan 2026 16:00:18 +0000 (11:00 -0500)
committerTejun Heo <tj@kernel.org>
Mon, 12 Jan 2026 19:01:44 +0000 (09:01 -1000)
commita1a01793ae1f6f99fd7174988d49b43cd1cb36c3
tree9a71b6f130154b3c84afe12c78d2df855a11a2fe
parent18bc2425a877c45b59c0972df30afb46084f8816
cgroup/cpuset: Consistently compute effective_xcpus in update_cpumasks_hier()

Since commit f62a5d39368e ("cgroup/cpuset: Remove remote_partition_check()
& make update_cpumasks_hier() handle remote partition"), the
compute_effective_exclusive_cpumask() helper was extended to
strip exclusive CPUs from siblings when computing effective_xcpus
(cpuset.cpus.exclusive.effective). This helper was later renamed to
compute_excpus() in commit 86bbbd1f33ab ("cpuset: Refactor exclusive
CPU mask computation logic").

This helper is supposed to be used consistently to compute
effective_xcpus. However, there is an exception within the callback
critical section in update_cpumasks_hier() when exclusive_cpus of a
valid partition root is empty. This can cause effective_xcpus value to
differ depending on where exactly it is last computed. Fix this by using
compute_excpus() in this case to give a consistent result.

Signed-off-by: Waiman Long <longman@redhat.com>
Reviewed-by: Chen Ridong <chenridong@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup/cpuset.c