[GIT PULL] cgroup changes for v6.20

From: Tejun Heo

Date: Mon Feb 09 2026 - 14:26:13 EST


Hi Linus,

The following changes since commit 3309b63a2281efb72df7621d60cc1246b6286ad3:

cgroup: rstat: use LOCK CMPXCHG in css_rstat_updated (2025-12-08 08:26:56 -1000)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git tags/cgroup-for-6.20

for you to fetch changes up to 8b1f3c54f930c3aeda0b5bad97bc317fc80267fd:

cpuset: fix overlap of partition effective CPUs (2026-02-01 06:49:52 -1000)

----------------------------------------------------------------
cgroup: Changes for v6.20

- cpuset changes:

- Continue separating v1 and v2 implementations by moving more
v1-specific logic into cpuset-v1.c.

- Improve partition handling. Sibling partitions are no longer
invalidated on cpuset.cpus conflict, cpuset.cpus changes no longer
fail in v2, and effective_xcpus computation is made consistent.

- Fix partition effective CPUs overlap that caused a warning on cpuset
removal when sibling partitions shared CPUs.

- Increase the maximum cgroup subsystem count from 16 to 32 to
accommodate future subsystem additions.

- Misc cleanups and selftest improvements including switching to
css_is_online() helper, removing dead code and stale documentation
references, using lockdep_assert_cpuset_lock_held() consistently,
and adding polling helpers for asynchronously updated cgroup
statistics.

----------------------------------------------------------------
Chen Ridong (11):
cgroup: switch to css_is_online() helper
cpuset: Remove unnecessary checks in rebuild_sched_domains_locked
cpuset: add lockdep_assert_cpuset_lock_held helper
cpuset: add cpuset1_online_css helper for v1-specific operations
cpuset: add cpuset1_init helper for v1 initialization
cpuset: move update_domain_attr_tree to cpuset_v1.c
cpuset: separate generate_sched_domains for v1 and v2
cpuset: remove v1-specific code from generate_sched_domains
cpuset: remove dead code in cpuset-v1.c
cgroup: increase maximum subsystem count from 16 to 32
cpuset: fix overlap of partition effective CPUs

Guopeng Zhang (3):
selftests: cgroup: Add cg_read_key_long_poll() to poll a cgroup key with retries
selftests: cgroup: make test_memcg_sock robust against delayed sock stats
selftests: cgroup: Replace sleep with cg_read_key_long_poll() for waiting on nr_dying_descendants

Tejun Heo (1):
cgroup: Remove stale cpu.rt.max reference from documentation

Waiman Long (5):
cgroup/cpuset: Streamline rm_siblings_excl_cpus()
cgroup/cpuset: Consistently compute effective_xcpus in update_cpumasks_hier()
cgroup/cpuset: Don't fail cpuset.cpus change in v2
cgroup/cpuset: Don't invalidate sibling partitions on cpuset.cpus conflict
cgroup/cpuset: Move the v1 empty cpus/mems check to cpuset1_validate_change()

Zhao Mengmeng (1):
cpuset: replace direct lockdep_assert_held() with lockdep_assert_cpuset_lock_held()

Documentation/admin-guide/cgroup-v2.rst | 44 +-
fs/fs-writeback.c | 2 +-
include/linux/cgroup-defs.h | 8 +-
include/linux/cpuset.h | 2 +
include/linux/memcontrol.h | 2 +-
include/trace/events/cgroup.h | 2 +-
kernel/cgroup/cgroup-internal.h | 8 +-
kernel/cgroup/cgroup-v1.c | 12 +-
kernel/cgroup/cgroup.c | 50 +--
kernel/cgroup/cpuset-internal.h | 54 ++-
kernel/cgroup/cpuset-v1.c | 271 ++++++++++-
kernel/cgroup/cpuset.c | 499 +++++----------------
kernel/cgroup/debug.c | 2 +-
mm/memcontrol.c | 2 +-
mm/page_owner.c | 2 +-
tools/testing/selftests/cgroup/lib/cgroup_util.c | 21 +
.../selftests/cgroup/lib/include/cgroup_util.h | 5 +
tools/testing/selftests/cgroup/test_cpuset_prs.sh | 29 +-
tools/testing/selftests/cgroup/test_kmem.c | 33 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 20 +-
20 files changed, 593 insertions(+), 475 deletions(-)

Thanks.

--
tejun