[GIT PULL] cgroup: Changes for v7.4
From: Tejun Heo
Date: Mon Oct 19 2026 - 13:05:51 EST
Hello,
The following changes since commit b8eb5fd5bdb4c03758b056c70e5e1d962ca89757:
cgroup/cpuset: Call is_in_v2_mode() after acquiring cpuset_mutex in cpuset_handle_hotplug() (2026-10-06 06:36:51 -1000)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git tags/cgroup-for-7.4
for you to fetch changes up to 1850c669516cb8568150937497a9a16a7bfa1582:
selftests/cgroup: test pids.events notification (2026-10-16 09:52:06 -1000)
----------------------------------------------------------------
cgroup: Changes for v7.4
- A write to cgroup.subtree_control or cgroup.type could hang in D state for
as long as a task pinning a dying controller took to exit, as syzbot
reported. The wait is now interruptible.
- cpuset: the deadline bandwidth check ran on cpusets that weren't valid
partition roots, failing cpuset writes with -EBUSY while deadline tasks
existed. The CPU count the fair class takes from cpuset assumed a shared
hierarchy that cgroup1 may not have.
- Finding a cgroup's effective controller state no longer walks up the
hierarchy, for per-I/O users such as nvmet. io.stat reads of cgroups
without block devices skip the stat flush.
- cpuset v1-only code moved to the v1 file and the exclusive flag dropped
from v2, with documentation corrections for partition roots and
boot-isolated CPUs.
- Dead cgroups fail writes with -ENODEV consistently, plus small cleanups.
- Selftest fixes, most visibly for tests that skipped on machines with many
mounts, and a new pids.events notification test.
----------------------------------------------------------------
Guopeng Zhang (3):
cgroup/cpuset: Remove redundant sched domain rebuild from update_prstate()
docs: cgroup-v2: Describe boot-isolated CPUs in cpuset.cpus.isolated
docs: cgroup-v2: Describe effective CPUs of partition roots
Karl Mehltretter (1):
cgroup/dmem: Fix eviction helper reference in dmem_cgroup_try_charge()
Konstantin Khorenko (2):
selftests: cgroup: skip test_memcg_sock under cgroup.memory=nosocket
selftests: cgroup: make test_memcg_sock check flushed sock stats
Peng Fan (1):
cgroup: use assign_bit() where applicable
Peng Yu (1):
cgroup: Track the effective css in each cgroup
Ren Tamura (2):
selftests: cgroup: Enable the cpu controller in test_cpu
selftests: cgroup: Preserve command arguments in with_stress.sh
Ridong Chen (1):
cgroup/cpuset: Move cpuset_update_flag() to cpuset-v1.c
Sahaj Chaudhari (1):
selftests/cgroup: test pids.events notification
Sasha Levin (2):
selftests: memcg: Don't close an uninitialized fd
selftests/cgroup: Free the paths returned by cg_control()
Sebastian Andrzej Siewior (2):
cgroup: Move cgrp_dead_ task+iwork into its own struct
cgroup: Use %p for pointer formatting
Shaojie Sun (3):
cgroup: namespace: Drop BUG_ON() in copy_cgroup_ns()
selftests/cgroup: read the entire file in read_text()
selftests/cgroup: don't crash on a truncated mount entry in cg_find_root()
Tejun Heo (4):
cgroup: Return -ENODEV consistently for a dead cgroup
cgroup: Return ERR_PTR from cgroup_kn_lock_live()
cgroup: Make the offline drain interruptible
cgroup: Merge branch 'for-7.3-fixes' into for-7.4
Usama Arif (1):
blk-cgroup: skip rstat flush for cgroups without blkgs
Vishal Chourasia (1):
selftests/cgroup: add settings file with a longer timeout
Waiman Long (3):
cgroup/cpuset: Run SCHED_DEADLINE shrink test on valid partition root only
cgroup/cpuset: Remove CS_CPU_EXCLUSIVE handling code from v2
cgroup/cpuset: Use cpuset_v2() in cpuset_num_cpus()
Documentation/admin-guide/cgroup-v2.rst | 62 +++++--
block/blk-cgroup.c | 11 +-
include/linux/cgroup-defs.h | 8 +
kernel/cgroup/cgroup-internal.h | 2 +-
kernel/cgroup/cgroup-v1.c | 26 ++-
kernel/cgroup/cgroup.c | 181 +++++++++++++--------
kernel/cgroup/cpuset-internal.h | 8 +-
kernel/cgroup/cpuset-v1.c | 59 ++++++-
kernel/cgroup/cpuset.c | 145 ++---------------
kernel/cgroup/debug.c | 18 +-
kernel/cgroup/dmem.c | 4 +-
kernel/cgroup/freezer.c | 5 +-
kernel/cgroup/namespace.c | 2 -
tools/testing/selftests/cgroup/lib/cgroup_util.c | 58 ++++++-
.../selftests/cgroup/lib/include/cgroup_util.h | 3 +
tools/testing/selftests/cgroup/settings | 1 +
tools/testing/selftests/cgroup/test_cpu.c | 5 +-
tools/testing/selftests/cgroup/test_kmem.c | 2 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 81 ++++++---
tools/testing/selftests/cgroup/test_pids.c | 73 +++++++++
tools/testing/selftests/cgroup/with_stress.sh | 2 +-
21 files changed, 471 insertions(+), 285 deletions(-)
create mode 100644 tools/testing/selftests/cgroup/settings
--
tejun