diff options
Diffstat (limited to 'kernel/tests/include/tst_cgroup.h')
-rw-r--r-- | kernel/tests/include/tst_cgroup.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kernel/tests/include/tst_cgroup.h b/kernel/tests/include/tst_cgroup.h new file mode 100644 index 0000000..77780e0 --- /dev/null +++ b/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 */ |