On Tue Apr 2, 2024 at 8:31 PM EEST, Haitao Huang wrote: > On Tue, 02 Apr 2024 02:43:25 -0500, Jarkko Sakkinen <jarkko@xxxxxxxxxx> > wrote: > > > On Tue Apr 2, 2024 at 4:42 AM EEST, Haitao Huang wrote: > >> Make cgroup test scripts ash compatible. > >> Remove cg-tools dependency. > >> Add documentation for functions. > >> > >> Tested with busybox on Ubuntu. > >> > >> Signed-off-by: Haitao Huang <haitao.huang@xxxxxxxxxxxxxxx> > >> --- > >> v2: > >> - Fixes for v2 cgroup > >> - Turn off swapping before memcontrol tests and back on after > >> - Add comments and reformat > >> --- > >> tools/testing/selftests/sgx/ash_cgexec.sh | 57 ++++++ > >> .../selftests/sgx/run_epc_cg_selftests.sh | 187 +++++++++++------- > >> .../selftests/sgx/watch_misc_for_tests.sh | 13 +- > >> 3 files changed, 179 insertions(+), 78 deletions(-) > >> create mode 100755 tools/testing/selftests/sgx/ash_cgexec.sh > >> > >> diff --git a/tools/testing/selftests/sgx/ash_cgexec.sh > >> b/tools/testing/selftests/sgx/ash_cgexec.sh > >> new file mode 100755 > >> index 000000000000..9607784378df > >> --- /dev/null > >> +++ b/tools/testing/selftests/sgx/ash_cgexec.sh > >> @@ -0,0 +1,57 @@ > >> +#!/usr/bin/env sh > >> +# SPDX-License-Identifier: GPL-2.0 > >> +# Copyright(c) 2024 Intel Corporation. > >> + > >> +# Move the current shell process to the specified cgroup > >> +# Arguments: > >> +# $1 - The cgroup controller name, e.g., misc, memory. > >> +# $2 - The path of the cgroup, > >> +# relative to /sys/fs/cgroup for cgroup v2, > >> +# relative to /sys/fs/cgroup/$1 for v1. > >> +move_to_cgroup() { > >> + controllers="$1" > >> + path="$2" > >> + > >> + # Check if cgroup v2 is in use > >> + if [ ! -d "/sys/fs/cgroup/misc" ]; then > >> + # Cgroup v2 logic > >> + cgroup_full_path="/sys/fs/cgroup/${path}" > >> + echo $$ > "${cgroup_full_path}/cgroup.procs" > >> + else > >> + # Cgroup v1 logic > >> + OLD_IFS="$IFS" > >> + IFS=',' > >> + for controller in $controllers; do > >> + cgroup_full_path="/sys/fs/cgroup/${controller}/${path}" > >> + echo $$ > "${cgroup_full_path}/tasks" > >> + done > >> + IFS="$OLD_IFS" > >> + fi > > > > I think that if you could point me to git v10 and all this I could > > then quite easily create test image and see what I get from that. > > > > I will code review the whole thing but this is definitely good > > enough to start testing this series properly! Thanks for the > > effort with this. The payback from this comes after the feature > > is mainline. We have now sort of reference of the usage patterns > > and less layers when we need to debug any possible (likely) bugs > > in the future. > > > > This is definitely to the right direction. I'm just wondering do > > we want to support v1 cgroups or would it make sense support only > > v2? > > BR, Jarkko > > > I can drop v1. I think most distro now support v2. > Created this branch to host these changes so far: > https://github.com/haitaohuang/linux/tree/sgx_cg_upstream_v10_plus Thanks! I'll point my build to that, make a test image and report the results. BR, Jarkko