linux/tools/testing
JP Kobryn 5da3bfa029 cgroup: use separate rstat trees for each subsystem
Different subsystems may call cgroup_rstat_updated() within the same
cgroup, resulting in a tree of pending updates from multiple subsystems.
When one of these subsystems is flushed via cgroup_rstat_flushed(), all
other subsystems with pending updates on the tree will also be flushed.

Change the paradigm of having a single rstat tree for all subsystems to
having separate trees for each subsystem. This separation allows for
subsystems to perform flushes without the side effects of other subsystems.
As an example, flushing the cpu stats will no longer cause the memory stats
to be flushed and vice versa.

In order to achieve subsystem-specific trees, change the tree node type
from cgroup to cgroup_subsys_state pointer. Then remove those pointers from
the cgroup and instead place them on the css. Finally, change update/flush
functions to make use of the different node type (css). These changes allow
a specific subsystem to be associated with an update or flush. Separate
rstat trees will now exist for each unique subsystem.

Since updating/flushing will now be done at the subsystem level, there is
no longer a need to keep track of updated css nodes at the cgroup level.
The list management of these nodes done within the cgroup (rstat_css_list
and related) has been removed accordingly.

Conditional guards for checking validity of a given css were placed within
css_rstat_updated/flush() to prevent undefined behavior occuring from kfunc
usage in bpf programs. Guards were also placed within css_rstat_init/exit()
in order to help consolidate calls to them. At call sites for all four
functions, the existing guards were removed.

Signed-off-by: JP Kobryn <inwardvessel@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2025-05-19 10:28:59 -10:00
..
crypto/chacha20-s390 crypto: lib/chacha - remove unused arch-specific init support 2025-03-21 17:39:06 +08:00
cxl cxl/test: Add Set Feature support to cxl_test 2025-03-17 14:41:37 -03:00
fault-injection
ktest ktest: Fix Test Failures Due to Missing LOG_FILE Directories 2025-03-27 09:34:00 -04:00
kunit Landlock update for v6.15-rc1 2025-03-28 12:37:13 -07:00
memblock
nvdimm Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
radix-tree Xarray: do not return sibling entries from xas_find_marked() 2025-01-24 22:47:27 -08:00
scatterlist
selftests cgroup: use separate rstat trees for each subsystem 2025-05-19 10:28:59 -10:00
shared tools: fix atomic_set() definition to set the value correctly 2025-01-12 19:03:35 -08:00
vma tools: add VM_WARN_ON_VMG definition 2025-01-25 20:22:46 -08:00
vsock vsock/test: Add test for SO_LINGER null ptr deref 2025-02-12 20:01:29 -08:00