[LTP] [PATCH v2] lib/tst_cgroup: Reset cgroup.clone_children value

Yang Xu xuyang2018.jy@cn.fujitsu.com
Sat Aug 8 03:02:14 CEST 2020


When running cgroup test cases(like cpuset01 or oom05) about cpuset subsystem
firstly, then cpuset_inherit case will fail because the value of
cgroup.clone_children has been changed into 1 on cgroup-v1. Reset this value
when calling tst_cgroupN_umount.

Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
---
v1->v2
1. only restore cpuset subsystem clone_children value
 lib/tst_cgroup.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
index 9459f7ea0..ba413d874 100644
--- a/lib/tst_cgroup.c
+++ b/lib/tst_cgroup.c
@@ -9,6 +9,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/mount.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 #include "tst_test.h"
 #include "tst_safe_macros.h"
@@ -17,6 +19,7 @@
 #include "tst_device.h"
 
 static enum tst_cgroup_ver tst_cg_ver;
+static int clone_children;
 
 static int tst_cgroup_check(const char *cgroup)
 {
@@ -88,6 +91,7 @@ static void tst_cgroup1_mount(const char *name, const char *option,
 	 */
 	if (strcmp(option, "cpuset") == 0) {
 		sprintf(knob_path, "%s/cgroup.clone_children", mnt_path);
+		SAFE_FILE_SCANF(knob_path, "%d", &clone_children);
 		SAFE_FILE_PRINTF(knob_path, "%d", 1);
 	}
 out:
@@ -123,6 +127,7 @@ static void tst_cgroupN_umount(const char *mnt_path, const char *new_path)
 	FILE *fp;
 	int fd;
 	char s_new[BUFSIZ], s[BUFSIZ], value[BUFSIZ];
+	char knob_path[PATH_MAX];
 
 	if (!tst_is_mounted(mnt_path))
 		return;
@@ -151,6 +156,13 @@ static void tst_cgroupN_umount(const char *mnt_path, const char *new_path)
 			    != (ssize_t)strlen(value) - 1)
 				tst_res(TWARN | TERRNO, "write %s", s);
 	}
+	if (tst_cg_ver & TST_CGROUP_V1) {
+		sprintf(knob_path, "%s/cpuset.cpus", mnt_path);
+		if (!access(knob_path, F_OK)) {
+			sprintf(knob_path, "%s/cgroup.clone_children", mnt_path);
+			SAFE_FILE_PRINTF(knob_path, "%d", clone_children);
+		}
+	}
 	if (fd != -1)
 		close(fd);
 	if (fp != NULL)
-- 
2.23.0





More information about the ltp mailing list