The following changes since commit 94a4acfec14615e971eb2c9e1fa6c992c85ff6c6: cgroup/psi: Set of->priv to NULL upon file release (2025-08-22 07:47:43 -1000) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git tags/cgroup-for-6.18 for you to fetch changes up to 8f0fdbd4a06bf795c68bc9839d9c349ab592654f: cpuset: remove is_prs_invalid helper (2025-09-22 12:57:46 -1000) ---------------------------------------------------------------- cgroup: Changes for v6.18 - Extensive cpuset code cleanup and refactoring work with no functional changes: CPU mask computation logic refactoring, introducing new helpers, removing redundant code paths, and improving error handling for better maintainability. - A few bug fixes to cpuset including fixes for partition creation failures when isolcpus is in use, missing error returns, and null pointer access prevention in free_tmpmasks(). - Core cgroup changes include replacing the global percpu_rwsem with per-threadgroup rwsem when writing to cgroup.procs for better scalability, workqueue conversions to use WQ_PERCPU and system_percpu_wq to prepare for workqueue default switching from percpu to unbound, and removal of unused code including the post_attach callback. - New cgroup.stat.local time accounting feature that tracks frozen time duration. - Misc changes including selftests updates (new freezer time tests and backward compatibility fixes), documentation sync, string function safety improvements, and 64-bit division fixes. ---------------------------------------------------------------- Bagas Sanjaya (1): Documentation: cgroup-v2: Sync manual toctree Chen Ridong (21): cpuset: remove redundant CS_ONLINE flag cpuset: decouple tmpmasks and cpumasks freeing in cgroup cpuset: separate tmpmasks and cpuset allocation logic cpuset: add helpers for cpus read and cpuset_mutex locks cpuset: move the root cpuset write check earlier cpuset: remove unused assignment to trialcs->partition_root_state cpuset: change return type of is_partition_[in]valid to bool cpuset: Refactor exclusive CPU mask computation logic cpuset: refactor CPU mask buffer parsing logic cpuset: introduce cpus_excl_conflict and mems_excl_conflict helpers cpuset: refactor out validate_partition cpuset: refactor cpus_allowed_validate_change cpuset: introduce partition_cpus_change cpuset: use parse_cpulist for setting cpus.exclusive cpuset: use partition_cpus_change for setting exclusive cpus cpuset: fix failure to enable isolated partition when containing isolcpus cpuset: Use new excpus for nocpu error check when enabling root partition cpuset: fix missing error return in update_cpumask cpuset: remove redundant special case for null input in node mask update cpuset: remove impossible warning in update_parent_effective_cpumask cpuset: remove is_prs_invalid helper Chuyi Zhou (3): cpuset: Don't always flush cpuset_migrate_mm_wq in cpuset_write_resmask cpuset: Defer flushing of the cpuset_migrate_mm_wq to task_work cgroup: Remove unused cgroup_subsys::post_attach Marco Crivellari (2): cgroup: replace use of system_wq with system_percpu_wq cgroup: WQ_PERCPU added to alloc_workqueue users Michal Koutný (1): selftests: cgroup: Make test_pids backwards compatible Tejun Heo (2): cgroup: Remove unused local variables from cgroup_procs_write_finish() cgroup: Merge branch 'for-6.17-fixes' into for-6.18 Thorsten Blum (1): cgroup: Replace deprecated strcpy() with strscpy() Tiffany Yang (3): cgroup: cgroup.stat.local time accounting cgroup: selftests: Add tests for freezer time cgroup: Fix 64-bit division in cgroup.stat.local Waiman Long (1): cgroup/cpuset: Prevent NULL pointer access in free_tmpmasks() Yi Tao (3): cgroup: refactor the cgroup_attach_lock code to make it clearer cgroup: relocate cgroup_attach_lock within cgroup_procs_write_start cgroup: replace global percpu_rwsem with per threadgroup resem when writing to cgroup.procs pengdonglin (2): cgroup: Remove redundant rcu_read_lock/unlock() in spin_lock cgroup/cpuset: Remove redundant rcu_read_lock/unlock() in spin_lock Documentation/admin-guide/cgroup-v2.rst | 33 +- include/linux/cgroup-defs.h | 43 +- include/linux/cgroup.h | 5 + include/linux/sched/signal.h | 4 + init/init_task.c | 3 + kernel/cgroup/cgroup-internal.h | 11 +- kernel/cgroup/cgroup-v1.c | 19 +- kernel/cgroup/cgroup.c | 199 ++++-- kernel/cgroup/cpuset-internal.h | 5 +- kernel/cgroup/cpuset-v1.c | 12 +- kernel/cgroup/cpuset.c | 752 +++++++++++---------- kernel/cgroup/debug.c | 4 - kernel/cgroup/freezer.c | 16 +- kernel/fork.c | 4 + tools/testing/selftests/cgroup/lib/cgroup_util.c | 12 + .../selftests/cgroup/lib/include/cgroup_util.h | 1 + tools/testing/selftests/cgroup/test_freezer.c | 663 ++++++++++++++++++ tools/testing/selftests/cgroup/test_pids.c | 3 + 18 files changed, 1355 insertions(+), 434 deletions(-)