]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cgroup/cpuset: Add test cases for sibling CPU exclusion on partition update
authorSun Shaojie <sunshaojie@kylinos.cn>
Wed, 27 May 2026 07:05:09 +0000 (15:05 +0800)
committerTejun Heo <tj@kernel.org>
Wed, 27 May 2026 18:59:17 +0000 (08:59 -1000)
When sibling CPU exclusion occurs, a partition's effective_xcpus may be
a subset of its user_xcpus. The partcmd_update path must use
effective_xcpus instead of user_xcpus when calculating CPUs to return
to or request from the parent.

Add two test cases to verify this behavior:

  1) Narrowing cpuset.cpus to only the sibling-excluded CPUs should not
     return CPUs to parent that the partition never actually owned.

  2) Expanding cpuset.cpus after a sibling becomes a member should
     correctly request the additional CPUs from parent.

Co-developed-by: Zhang Guopeng <zhangguopeng@kylinos.cn>
Signed-off-by: Zhang Guopeng <zhangguopeng@kylinos.cn>
Signed-off-by: Sun Shaojie <sunshaojie@kylinos.cn>
Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
tools/testing/selftests/cgroup/test_cpuset_prs.sh

index a56f4153c64df86b51389b6f724fa668335cf962..683b05062810f255ec0ce95d8999c483c3f74915 100755 (executable)
@@ -492,6 +492,16 @@ REMOTE_TEST_MATRIX=(
        "  C1-5:P1   .  C1-4:P1   C2-3     .       .  \
              .      .     .       P1      .       .     p1:5|c11:1-4|c12:5 \
                                                         p1:P1|c11:P1|c12:P-1"
+       # Narrowing cpuset.cpus to previously sibling-excluded CPUs should
+       # not return CPUs that were never actually owned.
+       "  C1-4:P1   .   C1-2:P1  C1-3:P2  .       .  \
+             .      .     .         C3    .       .     p1:4|c11:1-2|c12:3 \
+                                                        p1:P1|c11:P1|c12:P2 3"
+       # Expanding cpuset.cpus to include a previously sibling-excluded CPU
+       # after the sibling has become a member should correctly request it.
+       "  C1-4:P1   .   C1-2:P1  C1-3:P2  .       .  \
+             .      .      P0     C2-3    .       .     p1:1,4|c11:1|c12:2-3 \
+                                                        p1:P1|c11:P0|c12:P2 2-3"
 )
 
 #