[PATCH-next v3 0/3] cgroup/cpuset: Support multiple destination cpusets for cpuset_*attach()

From: Waiman Long

Date: Sun Jul 12 2026 - 19:55:54 EST


v3:
- Swap the first 2 patches as the original patch 1 can introduce serious bug
without patch 2. Doing patch 2 first will be less problematic.

v2: https://lore.kernel.org/lkml/20260712150127.236790-1-longman@xxxxxxxxxx
- Make sure that attach_ctx.old_cs won't be set to a source cpuset that is
also the destination cpuset.

v1: https://lore.kernel.org/lkml/20260711020540.176740-1-longman@xxxxxxxxxx

This is a follow-up patch series to [1] to properly handle a special case
for cpuset task migration operation where the source and destination
cpusets are the same.

Patch 1 enables cpuset_*attach() to handle the case where there are many
destination cpusets from enabling cpuset controller. Patch 2 handles
those tasks that have the same source and destination cpuset by skipping
them as they are not migrating with respect to cpuset. Patch 3 adds a
new test case into test_cpuset to test proper handling of cpu affinity
when cpuset controller is disabled.

[1] https://lore.kernel.org/lkml/20260702214757.579012-1-longman@xxxxxxxxxx

Michal Koutný (1):
selftests/cgroup: Add test for cpuset affinity on controller disable

Waiman Long (2):
cgroup/cpuset: Support multiple destination cpusets for
cpuset_*attach()
cgroup/cpuset: Handle the special case of non-moving tasks in
cpuset_can_attach()

kernel/cgroup/cpuset.c | 131 ++++++----
tools/testing/selftests/cgroup/test_cpuset.c | 243 +++++++++++++++++++
2 files changed, 321 insertions(+), 53 deletions(-)

--
2.55.0