public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH] cgroup_regression_test.sh: fix test_5 possible mount failure because of cgroup hierarchy
@ 2019-06-11 11:00 Yang Xu
  2019-07-16  6:01 ` Yang Xu
  0 siblings, 1 reply; 8+ messages in thread
From: Yang Xu @ 2019-06-11 11:00 UTC (permalink / raw)
  To: ltp

Currently, if systems doesn't mount subsys1,subsys2 and the hierarchy is not equal to 0, running it
reports the following error:

mount: xxx is already mounted or /tmp/ltp-wPw08anmTI/LTP_cgroup_regression_test.V4jf0qrS7z/cgroup busy
cgroup_regression_test 5 TFAIL: mount net_prio and pids failed

It fails because libcgroup doesn't permmit destroy cgroup subsystem hierarchies.
Simple umnout does not destroy the hierarchies. They still live inside kernel!

When  hierarchy is equal to 0 in /proc/cgroups, we can mount them together on
a new mountpoint.

I add a check for subsystem hierarchy and get subsystem from head.

Notice:
more information about"Bug 612805 - cgroup: mount: none already mounted or /cgroups busy"

Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
---
 .../cgroup/cgroup_regression_test.sh           | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
index e197f5d3f..38cb760c2 100755
--- a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
+++ b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
@@ -252,8 +252,10 @@ test5()
 		return
 	fi
 
-	local subsys1=`tail -n 1 /proc/cgroups | awk '{ print $1 }'`
-	local subsys2=`tail -n 2 /proc/cgroups | head -1 | awk '{ print $1 }'`
+	local subsys1=`head -2 /proc/cgroups | tail -n 1 | awk '{ print $1 }'`
+	local subsys1_hierarchy=`head -2 /proc/cgroups | tail -n 1 | awk '{ print $2 }'`
+	local subsys2=`head -3 /proc/cgroups | tail -n 1 | awk '{ print $1 }'`
+	local subsys2_hierarchy=`head -3 /proc/cgroups | tail -n 1 | awk '{ print $2 }'`
 
 	# Accounting here for the fact that the chosen subsystems could
 	# have been already previously mounted at boot time: in such a
@@ -267,10 +269,16 @@ test5()
 	if [ -z "$mounted" ]; then
 		mntpoint=cgroup
 		failing=$subsys1
-		mount -t cgroup -o $subsys1,$subsys2 xxx $mntpoint/
+		mount -t cgroup -o $subsys1,$subsys2 xxx $mntpoint/ 2>/dev/null
+		# Even subsystem has not been mounted, it still live in kernel.
+		# So we will get EBUSY when both mount subsys1 and subsys2 if
+		# hierarchy isn't equal to 0.
 		if [ $? -ne 0 ]; then
-			tst_res TFAIL "mount $subsys1 and $subsys2 failed"
-			return
+			if [ "$subsys1_hierarchy" = 0 -a "$subsys2_hierarchy" = 0 ]; then
+				tst_res TFAIL "mount $subsys1 and $subsys2 failed"
+				return
+			fi
+			failing=$subsys1,$subsys2
 		fi
 	else
 		# Use the pre-esistent mountpoint as $mntpoint and use a
-- 
2.18.1




^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-16 12:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-11 11:00 [LTP] [PATCH] cgroup_regression_test.sh: fix test_5 possible mount failure because of cgroup hierarchy Yang Xu
2019-07-16  6:01 ` Yang Xu
2019-08-02 10:12   ` Yang Xu
2019-09-02  7:44     ` Yang Xu
2019-09-11 13:33       ` Cyril Hrubis
2019-09-12  7:00         ` =?unknown-8bit?b?WWFuZy/lvpAg5p2o?=
2019-09-12 12:29           ` Cyril Hrubis
2019-09-16 12:07             ` Yang Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox