cgroup: Changes for v7.3

- cpuset:

  - Attach path bug fixes: migrations spanning multiple source or
    destination cpusets were mishandled, most visibly leaving thread
    affinities stale when the controller is disabled in a threaded subtree.
    Configuration writes could also race an in-flight attach and apply stale
    state, and the deadline task count could get corrupted by concurrent
    updates, skewing SCHED_DEADLINE admission decisions.

  - Memory binding bug fixes: which node masks get applied differed between
    the binding update paths, and tasks cloned with CLONE_INTO_CGROUP
    skipped rebinding entirely. Rebinding also now runs once per process
    instead of repeating for every thread sharing the mm.

  - Overhead removals with no behavior change: CPU hotplug iterated tasks of
    cpusets that just inherit the parent's effective masks, and the
    slab-spreading task flag was still being maintained although the SLAB
    allocator that consumed it is long gone.

- Data-race annotations for benign races so that KCSAN reports stay
  meaningful, selftest coverage for the fixes above along with flakiness and
  portability fixes, and documentation corrections.
selftests/cgroup: Remove redundant chown in test_cgcore_lesser_ns_open

test_cgcore_lesser_ns_open runs as root throughout and never changes its
euid, so chowning the two cgroup.procs files to a non-root uid has no
effect on the test.

The ENOENT the test expects comes from the cgroup namespace delegation
check in cgroup_procs_write_permission(): the source and destination
cgroups must both be descendants of the namespace root captured at open
time.  That check does not depend on file ownership.  In addition, the
permission check only examines the common ancestor's cgroup.procs file
(the test root here), which the chown calls do not touch.

Remove the redundant chown calls and the now unused test_euid and
cg_test_a_procs variables.

Signed-off-by: Shaojie Sun <sunshaojie@kylinos.cn>
Reviewed-by: Tao Cui <cuitao@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
1 file changed