]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cgroup/cpuset: Move the v1 empty cpus/mems check to cpuset1_validate_change()
authorWaiman Long <longman@redhat.com>
Mon, 12 Jan 2026 16:00:21 +0000 (11:00 -0500)
committerTejun Heo <tj@kernel.org>
Mon, 12 Jan 2026 19:03:22 +0000 (09:03 -1000)
commit272bd8183376a9e20fe08bacbaa44003d7c8acaa
tree056bbaea9eee14c38049d9d6e0285b553538aa75
parent2a3602030d800b6600ef55c31e21bc54611f7770
cgroup/cpuset: Move the v1 empty cpus/mems check to cpuset1_validate_change()

As stated in commit 1c09b195d37f ("cpuset: fix a regression in validating
config change"), it is not allowed to clear masks of a cpuset if
there're tasks in it. This is specific to v1 since empty "cpuset.cpus"
or "cpuset.mems" will cause the v2 cpuset to inherit the effective CPUs
or memory nodes from its parent. So it is OK to have empty cpus or mems
even if there are tasks in the cpuset.

Move this empty cpus/mems check in validate_change() to
cpuset1_validate_change() to allow more flexibility in setting
cpus or mems in v2. cpuset_is_populated() needs to be moved into
cpuset-internal.h as it is needed by the empty cpus/mems checking code.

Also add a test case to test_cpuset_prs.sh to verify that.

Reported-by: Chen Ridong <chenridong@huaweicloud.com>
Closes: https://lore.kernel.org/lkml/7a3ec392-2e86-4693-aa9f-1e668a668b9c@huaweicloud.com/
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-internal.h
kernel/cgroup/cpuset-v1.c
kernel/cgroup/cpuset.c
tools/testing/selftests/cgroup/test_cpuset_prs.sh