@@ -23,10 +23,16 @@ TST_TIMEOUT=2100
setup()
{
- if ! is_cgroup_subsystem_available_and_enabled "memory"; then
- tst_brk TCONF "Either kernel does not support Memory Resource Controller or feature not enabled"
+ cgroup_require "memory"
+ cgroup_v=$(cgroup_get_version "memory")
+ test_path=$(cgroup_get_test_path "memory")
+ task_list=$(cgroup_get_task_list "memory")
+ if [ "$cgroup_v" = "V2" ]; then
+ ROD echo "+memory" > "$test_path/cgroup.subtree_control"
fi
+ tst_res TINFO "test starts with cgroup $cgroup_v"
+
echo 3 > /proc/sys/vm/drop_caches
sleep 2
local mem_free=`cat /proc/meminfo | grep MemFree | awk '{ print $2 }'`
@@ -43,18 +49,7 @@ setup()
cleanup()
{
- if [ -e /dev/memcg ]; then
- EXPECT_PASS umount /dev/memcg
- EXPECT_PASS rmdir /dev/memcg
- fi
-}
-
-do_mount()
-{
- cleanup
-
- EXPECT_PASS mkdir /dev/memcg
- EXPECT_PASS mount -t cgroup -omemory memcg /dev/memcg
+ cgroup_cleanup
}
# $1 Number of cgroups
@@ -71,13 +66,11 @@ run_stress()
tst_res TINFO "Testing $cgroups cgroups, using $mem_size MB, interval $interval"
- do_mount
-
tst_res TINFO "Starting cgroups"
for i in $(seq 0 $(($cgroups-1))); do
- mkdir /dev/memcg/$i 2> /dev/null
+ ROD mkdir "$test_path/$i"
memcg_process_stress $mem_size $interval &
- echo $! > /dev/memcg/$i/tasks
+ ROD echo $! > "$test_path/$i/$task_list"
pids="$pids $!"
done
@@ -93,12 +86,11 @@ run_stress()
for pid in $pids; do
kill -KILL $pid 2> /dev/null
wait $pid 2> /dev/null
- rmdir /dev/memcg/$i 2> /dev/null
+ ROD rmdir "$test_path/$i"
i=$((i+1))
done
tst_res TPASS "Test passed"
- cleanup
}
test1()
Update the test to use the newer cgroup lib which enables the testing of both v1 and v2 memory controllers and makes the setup and cleanup much simpler. Signed-off-by: Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com> --- .../memcg/stress/memcg_stress_test.sh | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-)