[LTP] [PATCH 2/2] cgroup: fix mount errors in cgroup subsys
Petr Vorel
pvorel@suse.cz
Thu Dec 13 17:24:26 CET 2018
Hi Li, Cristian,
> It is very easy to get failures when running these cgroup regression
> tests on the newer kernel. Maybe the cases should be rewriten in LTP
> new API someday, but currently this fix just as a workaround for it.
> Errors:
> cgroup_regression_test 3 TFAIL : ltpapicmd.c:190: Failed to mount cpu subsys
> cgroup_regression_test 5 TFAIL : ltpapicmd.c:190: mount net_prio and pids failed
> cgroup_regression_test 7 TFAIL : ltpapicmd.c:190: failed to mount net_prio
Li, I pushed your old patch with some changes (see diff bellow):
* remove fix for 5th test (already fixed by Cristian 877c1228d)
* use awk for consistency (although I prefer using cut, I have feeling it's more
common than awk on embedded devices)
* remove bashism
* add local
@Cristian: some of issues, which needs to be addressed when rewriting into new API:
* remove bashisms, use #!/bin/sh
* Remove absolute (/bin/kill) and relative paths and cd into $LTPROOT/testcases/bin
* function for parsing /proc/mounts
* use local in functions, don't use global variables (failed)
* maybe shell code can be generated on the fly into tmp files. If not it'd be
better to use more obvious names than "test_10_2.sh"
* ...
Kind regards,
Petr
diff --git testcases/kernel/controllers/cgroup/cgroup_regression_test.sh testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
index 8b2918c3a..6cfc63866 100755
--- testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
+++ testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
@@ -170,13 +170,15 @@ test_2()
#---------------------------------------------------------------------------
test_3()
{
+ local cpu_subsys_path
+
if [ ! -e /proc/sched_debug ]; then
tst_resm TCONF "CONFIG_SCHED_DEBUG is not enabled"
return
fi
if grep -q -w "cpu" /proc/cgroups ; then
- cpu_subsys_path=$(grep -w cpu /proc/mounts | cut -d ' ' -f 2)
+ cpu_subsys_path=$(grep -w cpu /proc/mounts | awk '{ print $2 }')
else
tst_resm TCONF "CONFIG_CGROUP_SCHED is not enabled"
return
@@ -269,14 +271,7 @@ test_5()
fi
subsys1=`tail -n 1 /proc/cgroups | awk '{ print $1 }'`
- subsys1_mount=$(basename $(grep -w $subsys1 /proc/mounts | cut -d ' ' -f 2))
subsys2=`tail -n 2 /proc/cgroups | head -1 | awk '{ print $1 }'`
- subsys2_mount=$(basename $(grep -w $subsys2 /proc/mounts | cut -d ' ' -f 2))
-
- if [ -n "$subsys1_mount" ] || [ -n "$subsys2_mount" ]; then
- tst_resm TCONF "$subsys1 or $subsys2 has been mounted, skip"
- return
- fi
# Accounting here for the fact that the chosen subsystems could
# have been already previously mounted at boot time: in such a
@@ -402,7 +397,7 @@ test_7_1()
# remount with new subsystems added
# since 2.6.28, this remount will fail
- if [ "$subsys_path" == "cgroup" ]; then
+ if [ "$subsys_path" = "cgroup" ]; then
mount -t cgroup -o remount xxx cgroup/ 2> /dev/null
/bin/kill -SIGTERM $!
wait $!
More information about the ltp
mailing list