diff options
author | 2023-10-29 06:14:30 +0000 | |
---|---|---|
committer | 2023-11-09 13:25:47 -1000 | |
commit | 9067d90006df089b9a1da0d74f0cad232a5d726a (patch) | |
tree | f4e9faf68957ba9c800e8776b0840ffab66185e9 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | cgroup: Make operations on the cgroup root_list RCU safe (diff) | |
download | wireguard-linux-9067d90006df089b9a1da0d74f0cad232a5d726a.tar.xz wireguard-linux-9067d90006df089b9a1da0d74f0cad232a5d726a.zip |
cgroup: Eliminate the need for cgroup_mutex in proc_cgroup_show()
The cgroup root_list is already RCU-safe. Therefore, we can replace the
cgroup_mutex with the RCU read lock in some particular paths. This change
will be particularly beneficial for frequent operations, such as
`cat /proc/self/cgroup`, in a cgroup1-based container environment.
I did stress tests with this change, as outlined below
(with CONFIG_PROVE_RCU_LIST enabled):
- Continuously mounting and unmounting named cgroups in some tasks,
for example:
cgrp_name=$1
while true
do
mount -t cgroup -o none,name=$cgrp_name none /$cgrp_name
umount /$cgrp_name
done
- Continuously triggering proc_cgroup_show() in some tasks concurrently,
for example:
while true; do cat /proc/self/cgroup > /dev/null; done
They can ran successfully after implementing this change, with no RCU
warnings in dmesg.
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions