summaryrefslogtreecommitdiffstats
path: root/src/kernel/tests/include/tst_cgroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/tests/include/tst_cgroup.h')
-rw-r--r--src/kernel/tests/include/tst_cgroup.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/kernel/tests/include/tst_cgroup.h b/src/kernel/tests/include/tst_cgroup.h
new file mode 100644
index 0000000..77780e0
--- /dev/null
+++ b/src/kernel/tests/include/tst_cgroup.h
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2020 Red Hat, Inc.
+ * Copyright (c) 2020 Li Wang <liwang@redhat.com>
+ */
+
+#ifndef TST_CGROUP_H
+#define TST_CGROUP_H
+
+#define PATH_TMP_CG_MEM "/tmp/cgroup_mem"
+#define PATH_TMP_CG_CST "/tmp/cgroup_cst"
+
+enum tst_cgroup_ver {
+ TST_CGROUP_V1 = 1,
+ TST_CGROUP_V2 = 2,
+};
+
+enum tst_cgroup_ctrl {
+ TST_CGROUP_MEMCG = 1,
+ TST_CGROUP_CPUSET = 2,
+ /* add cgroup controller */
+};
+
+enum tst_cgroup_ver tst_cgroup_version(void);
+
+/* To mount/umount specified cgroup controller on 'cgroup_dir' path */
+void tst_cgroup_mount(enum tst_cgroup_ctrl ctrl, const char *cgroup_dir);
+void tst_cgroup_umount(const char *cgroup_dir);
+
+/* To move current process PID to the mounted cgroup tasks */
+void tst_cgroup_move_current(const char *cgroup_dir);
+
+/* To set cgroup controller knob with new value */
+void tst_cgroup_set_knob(const char *cgroup_dir, const char *knob, long value);
+
+/* Set of functions to set knobs under the memory controller */
+void tst_cgroup_mem_set_maxbytes(const char *cgroup_dir, long memsz);
+int tst_cgroup_mem_swapacct_enabled(const char *cgroup_dir);
+void tst_cgroup_mem_set_maxswap(const char *cgroup_dir, long memsz);
+
+/* Set of functions to read/write cpuset controller files content */
+void tst_cgroup_cpuset_read_files(const char *cgroup_dir, const char *filename, char *retbuf);
+void tst_cgroup_cpuset_write_files(const char *cgroup_dir, const char *filename, const char *buf);
+
+#endif /* TST_CGROUP_H */