From: Hui Peng <benquike@gmail.com>
To: "Waiman Long" <longman@redhat.com>,
"Ridong Chen" <ridong.chen@linux.dev>,
"Guopeng Zhang" <guopeng.zhang@linux.dev>,
"Tejun Heo" <tj@kernel.org>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"Michal Koutný" <mkoutny@suse.com>
Cc: Shuah Khan <shuah@kernel.org>,
Chen Ridong <chenridong@huawei.com>,
cgroups@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, Hui Peng <benquike@gmail.com>
Subject: [PATCH v4 0/3] cgroup/cpuset: fix exclusive CPU conflict checks for local and remote partitions
Date: Thu, 24 Sep 2026 04:27:26 +0000 [thread overview]
Message-ID: <20260924042729.1908863-1-benquike@gmail.com> (raw)
This series fixes three exclusive CPU validation gaps across local and
remote partitions in kernel/cgroup/cpuset.c and adds corresponding
regression tests to tools/testing/selftests/cgroup/test_cpuset_prs.sh:
1. Patch 1/3 ("cgroup/cpuset: return PERR_NOCPUS in
remote_partition_enable() on subpartitions_cpus conflict"):
Restores the subpartitions_cpus conflict error check in
remote_partition_enable() (returning PERR_NOCPUS to match
remote_cpus_update()) so a remote partition cannot be enabled
underneath an ancestor local partition via a non-partition
intermediate cgroup.
2. Patch 2/3 ("cgroup/cpuset: prevent activating local partition over
remote one"):
Checks trialcs->exclusive_cpus against subpartitions_cpus in
validate_partition() when !is_partition_valid(cs) so an initially
invalid top-level partition cannot later transition to a valid local
partition over an active remote partition via cpuset.cpus /
cpuset.cpus.exclusive updates.
3. Patch 3/3 ("cgroup/cpuset: check sibling effective_xcpus in
cpus_excl_conflict()"):
Falls back to sibling->effective_xcpus in cpus_excl_conflict() when
sibling->exclusive_cpus is empty so a sibling cgroup cannot claim
cpuset.cpus.exclusive over a valid local partition's implicit
exclusive CPUs.
Changes in v4:
- Send as a standalone series with a cover letter (0/3) instead of
replying in-thread to the previous version, as requested by Ridong
Chen and Waiman Long.
- Restore the exact v2 diff and commit description for patch 1/3
(which was accidentally corrupted when splitting v2 into 3 patches in
v3), fixing git apply against mainline.
- Make the test_cpuset_prs.sh test case in patch 2/3 independent of the
system CPU count (using X2-3 / CX2-3:P2 / P1:CX1-3 instead of
CX0-7:P1), as pointed out by Waiman Long.
Changes in v3:
- Split patch 2/2 from v2 into patch 2/3 (validate_partition(),
Fixes: 6da580ec656a) and patch 3/3 (cpus_excl_conflict(),
Fixes: 2a3602030d80), as pointed out by Guopeng Zhang.
- Add Assisted-by: LLM tag.
Changes in v2:
- Split the remote_partition_enable() fix into patch 1/2 and return
PERR_NOCPUS instead of PERR_INVCPUS to match remote_cpus_update(), as
suggested by Guopeng Zhang.
- Add step-by-step reproducer and test_cpuset_prs.sh regression tests,
as requested by Ridong Chen.
Hui Peng (3):
cgroup/cpuset: return PERR_NOCPUS in remote_partition_enable() on subpartitions_cpus conflict
cgroup/cpuset: prevent activating local partition over remote one
cgroup/cpuset: check sibling effective_xcpus in cpus_excl_conflict()
kernel/cgroup/cpuset.c | 12 ++++++++++--
tools/testing/selftests/cgroup/test_cpuset_prs.sh | 5 +++++
2 files changed, 15 insertions(+), 2 deletions(-)
--
2.49.0
next reply other threads:[~2026-09-24 4:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 4:27 Hui Peng [this message]
2026-09-24 4:27 ` [PATCH v4 1/3] cgroup/cpuset: return PERR_NOCPUS in remote_partition_enable() on subpartitions_cpus conflict Hui Peng
2026-09-25 19:22 ` Waiman Long
2026-09-26 19:11 ` Tejun Heo
2026-09-28 1:25 ` Ridong Chen
2026-09-24 4:27 ` [PATCH v4 2/3] cgroup/cpuset: prevent activating local partition over remote one Hui Peng
2026-09-27 1:45 ` Waiman Long
2026-09-28 1:40 ` Ridong Chen
2026-09-28 16:13 ` Waiman Long
2026-09-24 4:27 ` [PATCH v4 3/3] cgroup/cpuset: check sibling effective_xcpus in cpus_excl_conflict() Hui Peng
2026-09-27 23:44 ` Waiman Long
2026-09-28 17:30 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260924042729.1908863-1-benquike@gmail.com \
--to=benquike@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=chenridong@huawei.com \
--cc=guopeng.zhang@linux.dev \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mkoutny@suse.com \
--cc=ridong.chen@linux.dev \
--cc=shuah@kernel.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.