* [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
@ 2024-11-08 5:37 Wei Gao via ltp
2024-11-08 9:53 ` Cyril Hrubis
0 siblings, 1 reply; 8+ messages in thread
From: Wei Gao via ltp @ 2024-11-08 5:37 UTC (permalink / raw)
To: ltp
tst_cgroup.c will scan cgroup mount point and check system's cgroup support status, both
cgroupv1 and cgroupv2, if your case only need check cgroupv1(such as needs_cgroup_ver = TST_CG_V1)
but your system contain cgroupv2 mount point, then TCONF will happen tell you your system already
mount cgroupv2, so test case will be skipped.
This change will fix above scenario, force check specific version of cgroup once you set needs_ver,
then test will continue try to create needs_ver of cgroup mount point.
This patch can be used by following cpuset02 case:
https://patchwork.ozlabs.org/project/ltp/patch/20240930135809.9300-1-wegao@suse.com/
Signed-off-by: Wei Gao <wegao@suse.com>
---
include/tst_cgroup.h | 2 +-
lib/newlib_tests/tst_cgroup01.c | 2 +-
lib/newlib_tests/tst_cgroup02.c | 2 +-
lib/tst_cgroup.c | 15 +++++++--------
testcases/lib/tst_cgctl.c | 4 ++--
5 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/include/tst_cgroup.h b/include/tst_cgroup.h
index d23a8e652..ff1c4ece0 100644
--- a/include/tst_cgroup.h
+++ b/include/tst_cgroup.h
@@ -117,7 +117,7 @@ extern const struct tst_cg_group *const tst_cg_drain;
/* Search the system for mounted cgroups and available
* controllers. Called automatically by tst_cg_require.
*/
-void tst_cg_scan(void);
+void tst_cg_scan(enum tst_cg_ver needs_ver);
/* Print the config detected by tst_cg_scan and print the internal
* state associated with each controller. Output can be passed to
* tst_cg_load_config to configure the internal state to that of the
diff --git a/lib/newlib_tests/tst_cgroup01.c b/lib/newlib_tests/tst_cgroup01.c
index eda0c548d..00bced72b 100644
--- a/lib/newlib_tests/tst_cgroup01.c
+++ b/lib/newlib_tests/tst_cgroup01.c
@@ -23,7 +23,7 @@ static void setup(void)
{
cgopts.needs_ver = !!only_mount_v1 ? TST_CG_V1 : 0;
- tst_cg_scan();
+ tst_cg_scan(0);
tst_cg_print_config();
tst_cg_require("memory", &cgopts);
diff --git a/lib/newlib_tests/tst_cgroup02.c b/lib/newlib_tests/tst_cgroup02.c
index de2ca1812..47d1c6b2a 100644
--- a/lib/newlib_tests/tst_cgroup02.c
+++ b/lib/newlib_tests/tst_cgroup02.c
@@ -58,7 +58,7 @@ static void setup(void)
{
cgopts.needs_ver = !!only_mount_v1 ? TST_CG_V1 : 0;
- tst_cg_scan();
+ tst_cg_scan(0);
tst_cg_print_config();
tst_cg_require("memory", &cgopts);
diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
index 1404116a5..652bb70b5 100644
--- a/lib/tst_cgroup.c
+++ b/lib/tst_cgroup.c
@@ -657,7 +657,7 @@ discard:
close(mnt_dfd);
}
-void tst_cg_scan(void)
+void tst_cg_scan(enum tst_cg_ver needs_ver)
{
struct mntent *mnt;
FILE *f = setmntent("/proc/self/mounts", "r");
@@ -674,10 +674,9 @@ void tst_cg_scan(void)
}
do {
- if (strncmp(mnt->mnt_type, "cgroup", 6))
- continue;
-
- cgroup_root_scan(mnt->mnt_type, mnt->mnt_dir, mnt->mnt_opts);
+ if ((!strcmp(mnt->mnt_type, "cgroup") && (needs_ver != TST_CG_V2)) ||
+ (!strcmp(mnt->mnt_type, "cgroup2") && (needs_ver != TST_CG_V1)))
+ cgroup_root_scan(mnt->mnt_type, mnt->mnt_dir, mnt->mnt_opts);
} while ((mnt = getmntent(f)));
}
@@ -717,7 +716,7 @@ mount:
if (!ret) {
tst_res(TINFO, "Mounted V2 CGroups on %s", mnt_path);
- tst_cg_scan();
+ tst_cg_scan(TST_CG_V2);
roots[0].we_mounted_it = 1;
return;
}
@@ -775,7 +774,7 @@ mount:
}
tst_res(TINFO, "Mounted V1 %s CGroup on %s", ctrl->ctrl_name, mnt_path);
- tst_cg_scan();
+ tst_cg_scan(TST_CG_V1);
if (!ctrl->ctrl_root)
return;
@@ -856,7 +855,7 @@ void tst_cg_require(const char *const ctrl_name,
if (ctrl->ctrl_root)
goto mkdirs;
- tst_cg_scan();
+ tst_cg_scan(options->needs_ver);
if (ctrl->ctrl_root)
goto mkdirs;
diff --git a/testcases/lib/tst_cgctl.c b/testcases/lib/tst_cgctl.c
index 2685bef81..6f324f780 100644
--- a/testcases/lib/tst_cgctl.c
+++ b/testcases/lib/tst_cgctl.c
@@ -30,7 +30,7 @@ static int cgctl_require(const char *ctrl, int test_pid)
static int cgctl_cleanup(const char *const config)
{
- tst_cg_scan();
+ tst_cg_scan(0);
tst_cg_load_config(config);
tst_cg_cleanup();
@@ -39,7 +39,7 @@ static int cgctl_cleanup(const char *const config)
static int cgctl_print(void)
{
- tst_cg_scan();
+ tst_cg_scan(0);
tst_cg_print_config();
return 0;
--
2.35.3
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
2024-11-08 5:37 [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist Wei Gao via ltp
@ 2024-11-08 9:53 ` Cyril Hrubis
2024-11-08 11:21 ` Wei Gao via ltp
0 siblings, 1 reply; 8+ messages in thread
From: Cyril Hrubis @ 2024-11-08 9:53 UTC (permalink / raw)
To: Wei Gao; +Cc: ltp
Hi!
> tst_cgroup.c will scan cgroup mount point and check system's cgroup support status, both
> cgroupv1 and cgroupv2, if your case only need check cgroupv1(such as needs_cgroup_ver = TST_CG_V1)
> but your system contain cgroupv2 mount point, then TCONF will happen tell you your system already
> mount cgroupv2, so test case will be skipped.
I do not get what happens here. What is the exact test output that does
not work for you?
We have tst_cg_require() which attempts to mount either v1 or v2 as
described in options. However a controller can be mouted either in v1 or
v2 but not in both, so skipping the scan will not solve anything.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
2024-11-08 9:53 ` Cyril Hrubis
@ 2024-11-08 11:21 ` Wei Gao via ltp
2024-11-08 11:23 ` Cyril Hrubis
0 siblings, 1 reply; 8+ messages in thread
From: Wei Gao via ltp @ 2024-11-08 11:21 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
On Fri, Nov 08, 2024 at 10:53:11AM +0100, Cyril Hrubis wrote:
> Hi!
> > tst_cgroup.c will scan cgroup mount point and check system's cgroup support status, both
> > cgroupv1 and cgroupv2, if your case only need check cgroupv1(such as needs_cgroup_ver = TST_CG_V1)
> > but your system contain cgroupv2 mount point, then TCONF will happen tell you your system already
> > mount cgroupv2, so test case will be skipped.
>
> I do not get what happens here. What is the exact test output that does
> not work for you?
If you add .needs_cgroup_ver = TST_CG_V1 in cpuset02.c and running on sle-micro you will hit
https://github.com/linux-test-project/ltp/blob/6408294d83682635393e36c14bbd6ebd94fead94/lib/tst_cgroup.c#L892
Since sle-micro platform already create cgroupv2 mount point, the tst_cg_scan will get cgroupv2 info and
will not call cgroup_mount_v1.
>
> We have tst_cg_require() which attempts to mount either v1 or v2 as
> described in options. However a controller can be mouted either in v1 or
> v2 but not in both, so skipping the scan will not solve anything.
>
> --
> Cyril Hrubis
> chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
2024-11-08 11:21 ` Wei Gao via ltp
@ 2024-11-08 11:23 ` Cyril Hrubis
2024-11-11 2:47 ` Wei Gao via ltp
0 siblings, 1 reply; 8+ messages in thread
From: Cyril Hrubis @ 2024-11-08 11:23 UTC (permalink / raw)
To: Wei Gao; +Cc: ltp
Hi!
> If you add .needs_cgroup_ver = TST_CG_V1 in cpuset02.c and running on sle-micro you will hit
> https://github.com/linux-test-project/ltp/blob/6408294d83682635393e36c14bbd6ebd94fead94/lib/tst_cgroup.c#L892
>
> Since sle-micro platform already create cgroupv2 mount point, the tst_cg_scan will get cgroupv2 info and
> will not call cgroup_mount_v1.
And that is, as far as I can tell, correct. You cannot mount a
controller under v1 when it was already mounted under v2.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
2024-11-08 11:23 ` Cyril Hrubis
@ 2024-11-11 2:47 ` Wei Gao via ltp
2024-11-11 12:08 ` Cyril Hrubis
0 siblings, 1 reply; 8+ messages in thread
From: Wei Gao via ltp @ 2024-11-11 2:47 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
On Fri, Nov 08, 2024 at 12:23:48PM +0100, Cyril Hrubis wrote:
> Hi!
> > If you add .needs_cgroup_ver = TST_CG_V1 in cpuset02.c and running on sle-micro you will hit
> > https://github.com/linux-test-project/ltp/blob/6408294d83682635393e36c14bbd6ebd94fead94/lib/tst_cgroup.c#L892
> >
> > Since sle-micro platform already create cgroupv2 mount point, the tst_cg_scan will get cgroupv2 info and
> > will not call cgroup_mount_v1.
>
> And that is, as far as I can tell, correct. You cannot mount a
> controller under v1 when it was already mounted under v2.
On sle-micro 6.1, you can mount v1 controller when it was already mounted under v2
And after you force mount v1 cpuset controller, the v2 cpuset controller will be removed
localhost:~ # mount | grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
localhost:~ # ll /sys/fs/cgroup/
total 0
-r--r--r-- 1 root root 0 Nov 11 01:39 cgroup.controllers
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.depth
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.descendants
-rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.procs
-r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.stat
-rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.subtree_control
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.threads
-r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat
-r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat.local
-r--r--r-- 1 root root 0 Nov 11 01:44 cpuset.cpus.effective <<<<
-r--r--r-- 1 root root 0 Nov 11 01:44 cpuset.mems.effective <<<<
drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-hugepages.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-mqueue.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 init.scope
-rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.model
-rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.qos
-r--r--r-- 1 root root 0 Nov 11 01:44 io.stat
drwxr-xr-x 2 root root 0 Nov 11 01:39 machine.slice
-r--r--r-- 1 root root 0 Nov 11 01:44 memory.numa_stat
--w------- 1 root root 0 Nov 11 01:44 memory.reclaim
-r--r--r-- 1 root root 0 Nov 11 01:44 memory.stat
-r--r--r-- 1 root root 0 Nov 11 01:44 misc.capacity
drwxr-xr-x 2 root root 0 Nov 11 01:39 proc-fs-nfsd.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-fs-fuse-connections.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-config.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-debug.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-tracing.mount
drwxr-xr-x 40 root root 0 Nov 11 01:42 system.slice
drwxr-xr-x 2 root root 0 Nov 11 01:39 user.slice
localhost:/tmp # mkdir /var/tmp/cpuset
localhost:/tmp # mount -t cgroup -o cpuset cpuset /var/tmp/cpuset <<<<<<
localhost:/tmp # ll /var/tmp/cpuset/
total 0
-rw-r--r-- 1 root root 0 Nov 11 01:53 cgroup.clone_children
-rw-r--r-- 1 root root 0 Nov 11 01:53 cgroup.procs
-r--r--r-- 1 root root 0 Nov 11 01:53 cgroup.sane_behavior
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.cpu_exclusive
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.cpus
-r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.effective_cpus
-r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.effective_mems
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mem_exclusive
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mem_hardwall
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_migrate
-r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_pressure
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_pressure_enabled
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_spread_page
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_spread_slab
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mems
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.sched_load_balance <<<<<<
-rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.sched_relax_domain_level
-rw-r--r-- 1 root root 0 Nov 11 01:53 notify_on_release
-rw-r--r-- 1 root root 0 Nov 11 01:53 release_agent
-rw-r--r-- 1 root root 0 Nov 11 01:53 tasks
localhost:/tmp # ll /sys/fs/cgroup/
total 0
-r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.controllers
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.depth
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.descendants
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.procs
-r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.stat
-rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.subtree_control
-rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.threads
-r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat
-r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat.local
drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-hugepages.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-mqueue.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 init.scope
-rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.model
-rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.qos
-r--r--r-- 1 root root 0 Nov 11 01:44 io.stat
drwxr-xr-x 2 root root 0 Nov 11 01:39 machine.slice
-r--r--r-- 1 root root 0 Nov 11 01:44 memory.numa_stat
--w------- 1 root root 0 Nov 11 01:44 memory.reclaim
-r--r--r-- 1 root root 0 Nov 11 01:44 memory.stat
-r--r--r-- 1 root root 0 Nov 11 01:44 misc.capacity
drwxr-xr-x 2 root root 0 Nov 11 01:39 proc-fs-nfsd.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-fs-fuse-connections.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-config.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-debug.mount
drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-tracing.mount
drwxr-xr-x 40 root root 0 Nov 11 02:01 system.slice
drwxr-xr-x 2 root root 0 Nov 11 01:39 user.slice
localhost:/tmp # mount | grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
cpuset on /var/tmp/cpuset type cgroup (rw,relatime,cpuset)
>
> --
> Cyril Hrubis
> chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist
2024-11-11 2:47 ` Wei Gao via ltp
@ 2024-11-11 12:08 ` Cyril Hrubis
[not found] ` <dnhjiv6iqwbref6kaq2amylqbwrksnph3l7ewxgqetp6crrz3s@3k5j5t4sy2gl>
0 siblings, 1 reply; 8+ messages in thread
From: Cyril Hrubis @ 2024-11-11 12:08 UTC (permalink / raw)
To: Wei Gao; +Cc: mkoutny, ltp
Hi!
> On sle-micro 6.1, you can mount v1 controller when it was already mounted under v2
> And after you force mount v1 cpuset controller, the v2 cpuset controller will be removed
>
> localhost:~ # mount | grep cgroup
> cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
>
> localhost:~ # ll /sys/fs/cgroup/
> total 0
> -r--r--r-- 1 root root 0 Nov 11 01:39 cgroup.controllers
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.depth
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.descendants
> -rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.procs
> -r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.stat
> -rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.subtree_control
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.threads
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat.local
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpuset.cpus.effective <<<<
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpuset.mems.effective <<<<
> drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-hugepages.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-mqueue.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 init.scope
> -rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.model
> -rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.qos
> -r--r--r-- 1 root root 0 Nov 11 01:44 io.stat
> drwxr-xr-x 2 root root 0 Nov 11 01:39 machine.slice
> -r--r--r-- 1 root root 0 Nov 11 01:44 memory.numa_stat
> --w------- 1 root root 0 Nov 11 01:44 memory.reclaim
> -r--r--r-- 1 root root 0 Nov 11 01:44 memory.stat
> -r--r--r-- 1 root root 0 Nov 11 01:44 misc.capacity
> drwxr-xr-x 2 root root 0 Nov 11 01:39 proc-fs-nfsd.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-fs-fuse-connections.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-config.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-debug.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-tracing.mount
> drwxr-xr-x 40 root root 0 Nov 11 01:42 system.slice
> drwxr-xr-x 2 root root 0 Nov 11 01:39 user.slice
>
> localhost:/tmp # mkdir /var/tmp/cpuset
> localhost:/tmp # mount -t cgroup -o cpuset cpuset /var/tmp/cpuset <<<<<<
You are supposed to get an error here, at least that is what I thought.
I do get error here on vanilla 6.10 but on debian 6.1 the mount succeeds
as well. CCing Michal.
Michal I was under an impression that a controller that has been bound
to v2 cannot be removed from there and bound to v1 anymore, but it seems
that it may happen in some cases.
> localhost:/tmp # ll /var/tmp/cpuset/
> total 0
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cgroup.clone_children
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cgroup.procs
> -r--r--r-- 1 root root 0 Nov 11 01:53 cgroup.sane_behavior
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.cpu_exclusive
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.cpus
> -r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.effective_cpus
> -r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.effective_mems
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mem_exclusive
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mem_hardwall
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_migrate
> -r--r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_pressure
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_pressure_enabled
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_spread_page
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.memory_spread_slab
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.mems
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.sched_load_balance <<<<<<
> -rw-r--r-- 1 root root 0 Nov 11 01:53 cpuset.sched_relax_domain_level
> -rw-r--r-- 1 root root 0 Nov 11 01:53 notify_on_release
> -rw-r--r-- 1 root root 0 Nov 11 01:53 release_agent
> -rw-r--r-- 1 root root 0 Nov 11 01:53 tasks
>
> localhost:/tmp # ll /sys/fs/cgroup/
> total 0
> -r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.controllers
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.depth
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.max.descendants
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.procs
> -r--r--r-- 1 root root 0 Nov 11 01:44 cgroup.stat
> -rw-r--r-- 1 root root 0 Nov 11 01:39 cgroup.subtree_control
> -rw-r--r-- 1 root root 0 Nov 11 01:44 cgroup.threads
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat
> -r--r--r-- 1 root root 0 Nov 11 01:44 cpu.stat.local
> drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-hugepages.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 dev-mqueue.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 init.scope
> -rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.model
> -rw-r--r-- 1 root root 0 Nov 11 01:44 io.cost.qos
> -r--r--r-- 1 root root 0 Nov 11 01:44 io.stat
> drwxr-xr-x 2 root root 0 Nov 11 01:39 machine.slice
> -r--r--r-- 1 root root 0 Nov 11 01:44 memory.numa_stat
> --w------- 1 root root 0 Nov 11 01:44 memory.reclaim
> -r--r--r-- 1 root root 0 Nov 11 01:44 memory.stat
> -r--r--r-- 1 root root 0 Nov 11 01:44 misc.capacity
> drwxr-xr-x 2 root root 0 Nov 11 01:39 proc-fs-nfsd.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-fs-fuse-connections.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-config.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-debug.mount
> drwxr-xr-x 2 root root 0 Nov 11 01:39 sys-kernel-tracing.mount
> drwxr-xr-x 40 root root 0 Nov 11 02:01 system.slice
> drwxr-xr-x 2 root root 0 Nov 11 01:39 user.slice
>
> localhost:/tmp # mount | grep cgroup
> cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
> cpuset on /var/tmp/cpuset type cgroup (rw,relatime,cpuset)
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-12-09 11:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-08 5:37 [LTP] [PATCH v1] tst_cgroup.c: Force tst_cg_scan only scan specific cgroup version if needs_ver exist Wei Gao via ltp
2024-11-08 9:53 ` Cyril Hrubis
2024-11-08 11:21 ` Wei Gao via ltp
2024-11-08 11:23 ` Cyril Hrubis
2024-11-11 2:47 ` Wei Gao via ltp
2024-11-11 12:08 ` Cyril Hrubis
[not found] ` <dnhjiv6iqwbref6kaq2amylqbwrksnph3l7ewxgqetp6crrz3s@3k5j5t4sy2gl>
2024-12-05 13:16 ` Cyril Hrubis
2024-12-09 11:25 ` Wei Gao via ltp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox