[PATCH v2] cgroup/cpuset: Add test for partition root invalidation returning wrong CPUs

Shaojie Sun posted 1 patch 1 month, 2 weeks ago
tools/testing/selftests/cgroup/test_cpuset_prs.sh | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH v2] cgroup/cpuset: Add test for partition root invalidation returning wrong CPUs
Posted by Shaojie Sun 1 month, 2 weeks ago
Add a test case to REMOTE_TEST_MATRIX covering the bug fixed by
commit 345f40166694 ("cgroup/cpuset: Return only actually allocated
CPUs during partition invalidation"). The test verifies that when a
sibling partition root changes its cpuset.cpus to overlap with another
partition root, only actually allocated CPUs (effective_xcpus) are
returned to the parent, not all CPUs in cpus_allowed.

Signed-off-by: Shaojie Sun <sunshaojie@kylinos.cn>
---
 tools/testing/selftests/cgroup/test_cpuset_prs.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
index 0d41aa0d343d..236cb1b38178 100755
--- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
+++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
@@ -502,6 +502,12 @@ REMOTE_TEST_MATRIX=(
 	"  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"
+	# Changing a sibling partition's cpuset.cpus to overlap with another
+	# sibling partition should invalidate itself and return only actually
+	# allocated CPUs (effective_xcpus) to the parent.
+	"  C1-4:P1   .   C1-2:P1  C2-4:P2  .       .  \
+	      .      .     .         C1-2  .       .     p1:3-4|c11:1-2|c12:3-4 \
+							 p1:P1|c11:P1|c12:P-2"
 )
 
 #
-- 
2.25.1
Re: [PATCH v2] cgroup/cpuset: Add test for partition root invalidation returning wrong CPUs
Posted by Tejun Heo 1 month, 2 weeks ago
Applied to cgroup/for-7.3.

The patch was generated against a base which predates 866f587e9c70
("cgroup/cpuset: Avoid unnecessary cpus & mems update in
cpuset_hotplug_update_tasks()") and no longer applied, so I moved the
new entry to keep it with the other sibling-exclusion cases and matched
the current column alignment. The applied change follows:

diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
index 8e21e9fc439c..8380fd9d76bd 100755
--- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
+++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
@@ -502,6 +502,12 @@ REMOTE_TEST_MATRIX=(
 	"  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"
+	# Changing a sibling partition's cpuset.cpus to overlap with another
+	# sibling partition should invalidate itself and return only actually
+	# allocated CPUs (effective_xcpus) to the parent.
+	"  C1-4:P1   .   C1-2:P1  C2-4:P2  .       .  \
+	      .      .     .       C1-2    .       .     p1:3-4|c11:1-2|c12:3-4 \
+							 p1:P1|c11:P1|c12:P-2"
 	# Cpusets with empty cpuset.cpus should inherit parent's effective_cpus
 	"  C1-4:P1 C5-6   C1-2     .       C5      .  \
 	      .      P1    P1      .       .       .     p1:3-4|p2:5-6|c11:1-2|c12:3-4|c21:5|c22:5-6 \

Thanks.

--
tejun
Re: [PATCH v2] cgroup/cpuset: Add test for partition root invalidation returning wrong CPUs
Posted by Waiman Long 1 month, 2 weeks ago
On 8/11/26 5:58 AM, Shaojie Sun wrote:
> Add a test case to REMOTE_TEST_MATRIX covering the bug fixed by
> commit 345f40166694 ("cgroup/cpuset: Return only actually allocated
> CPUs during partition invalidation"). The test verifies that when a
> sibling partition root changes its cpuset.cpus to overlap with another
> partition root, only actually allocated CPUs (effective_xcpus) are
> returned to the parent, not all CPUs in cpus_allowed.
>
> Signed-off-by: Shaojie Sun <sunshaojie@kylinos.cn>
> ---
>   tools/testing/selftests/cgroup/test_cpuset_prs.sh | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> index 0d41aa0d343d..236cb1b38178 100755
> --- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> +++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> @@ -502,6 +502,12 @@ REMOTE_TEST_MATRIX=(
>   	"  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"
> +	# Changing a sibling partition's cpuset.cpus to overlap with another
> +	# sibling partition should invalidate itself and return only actually
> +	# allocated CPUs (effective_xcpus) to the parent.
> +	"  C1-4:P1   .   C1-2:P1  C2-4:P2  .       .  \
> +	      .      .     .         C1-2  .       .     p1:3-4|c11:1-2|c12:3-4 \
> +							 p1:P1|c11:P1|c12:P-2"
>   )
>   
>   #
Reviewed-by: Waiman Long <longman@redhat.com>