summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorWaiman Long <longman@redhat.com>2026-10-25 17:44:46 -0400
committerTejun Heo <tj@kernel.org>2026-10-26 07:44:32 -1000
commita7d89d92fdfbceb678d82710135d4eee2623d727 (patch)
tree9a4496779d517f6e7b434fc0eaf1dd7cdfd65298 /tools
parent356a3aa7404e420e6f19c5ed42db7b8bd0c7ee9f (diff)
cgroup/cpuset: Release invalid isolated CPUs in compute_partition_effective_cpumask()
It is found by sashiko that when a child isolated partition with parent root partition is invalidated in compute_partition_effective_cpumask(), the switching of the isolated exclusive CPUs from child to parent will not be reflected in isolated_cpus leading to CPU leakage. Fix that by calling isolated_cpus_update() when that happens. Also simplify compute_partition_effective_cpumask() by doing child partition invalidation only for the special case of no more effective_cpus left in a populated parent. The other case doesn't actually warrant invalidation at this stage and subsequent iteration in update_cpumasks_hier() and update_parent_effective_cpumask() for that child should handle that. Also drop the make_partition_invalid() helper by inlining it into compute_partition_effective_cpumask() as it is the only caller. A new test case is add to test_cpuset_prs.sh to verify this. Fixes: 11e5f407b64a ("cgroup/cpuset: Keep track of CPUs in isolated partitions") Signed-off-by: Waiman Long <longman@redhat.com> Reviewed-by: Guopeng Zhang <zhangguopeng@kylinos.cn> Tested-by: Guopeng Zhang <zhangguopeng@kylinos.cn> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/testing/selftests/cgroup/test_cpuset_prs.sh4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
index ea8e1ff3014c..47b199ff22cb 100755
--- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
+++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
@@ -521,6 +521,10 @@ TEST_MATRIX=(
" CX0-4:P2 CX2-4:P2 CX3-4:P2 . . X2 . . 0 A1:0-1,3-4|A2:2|A3:2 \
A1:P2|A2:P2|A3:P-2 0-4"
+ # When an isolated partition child with root partition parent is invalidated,
+ # its effective xcpus will be removed from isolated_cpus.
+ " C1-4:P1 C3-4:P2 . . T:C3-4 . . . 0 A1:3-4|A2:3-4 A1:P1|A2:P-2 ."
+
#
# old-A1 old-A2 old-A3 old-B1 new-A1 new-A2 new-A3 new-B1 fail ECPUs Pstate ISOLCPUS
# ------ ------ ------ ------ ------ ------ ------ ------ ---- ----- ------ --------