diff options
author | Yafang Shao <laoar.shao@gmail.com> | 2023-10-29 06:14:30 +0000 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2023-11-09 13:25:47 -1000 |
commit | 9067d90006df089b9a1da0d74f0cad232a5d726a (patch) | |
tree | f4e9faf68957ba9c800e8776b0840ffab66185e9 /tools/testing/selftests/bpf/prog_tests/async_stack_depth.c | |
parent | d23b5c577715892c87533b13923306acc6243f93 (diff) |
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/testing/selftests/bpf/prog_tests/async_stack_depth.c')
0 files changed, 0 insertions, 0 deletions