Re: [PATCH v3 1/3] cgroup/cpuset: Reject updates that empty the top sched domain

From: Ridong Chen

Date: Tue Nov 10 2026 - 07:39:26 EST




On 11/10/2026 1:03 PM, Guopeng Zhang wrote:
From: Guopeng Zhang <zhangguopeng@xxxxxxxxxx>

Boot-isolated CPUs remain in top_cpuset.effective_cpus, but are excluded
from its scheduling domain by generate_sched_domains(). Checking only
effective_cpus when distributing CPUs to partitions can therefore allow
all boot domain housekeeping CPUs to be taken from the top cpuset.

The resulting empty domain triggers a warning in build_sched_domains()
and can cause an out-of-bounds CPU access in build_perf_domains(). Both
root and isolated partitions can trigger this, whether local or remote.
For example, on a 32-CPU system booted with isolcpus=domain,10-31:

echo 0-9 > A/cpuset.cpus
echo root > A/cpuset.cpus.partition
Oops: general protection fault
RIP: 0010:build_perf_domains+...

Require local and remote partition creation and CPU mask updates to
leave an active boot domain housekeeping CPU in the top cpuset,
accounting for CPUs returned by the same update.

Add test cases to test_cpuset_prs.sh to verify that every partition
update leaves an active boot domain housekeeping CPU in the top cpuset.

Fixes: 9b496a8bbed9 ("cgroup/cpuset: Prevent leakage of isolated CPUs into sched domains")
Co-developed-by: Ridong Chen <ridong.chen@xxxxxxxxx>
Signed-off-by: Ridong Chen <ridong.chen@xxxxxxxxx>

It would be better with: Ridong Chen <chenridong@xxxxxxxxxx>

--
Best regards
Ridong