kernel/cgroup/cgroup-v1.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
The current cgroups output format is based on tabs, which
may cause misalignment of output information.
Using placeholder formatting can make the output information
more readable.
Signed-off-by: Huan Yang <link@vivo.com>
---
kernel/cgroup/cgroup-v1.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index 520a11cb12f4..c082a78f4c22 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -669,15 +669,16 @@ int proc_cgroupstats_show(struct seq_file *m, void *v)
struct cgroup_subsys *ss;
int i;
- seq_puts(m, "#subsys_name\thierarchy\tnum_cgroups\tenabled\n");
+ seq_printf(m, "%16s %16s %16s %16s\n", "#subsys_name", "hierarchy",
+ "num_cgroups", "enabled");
/*
* Grab the subsystems state racily. No need to add avenue to
* cgroup_mutex contention.
*/
for_each_subsys(ss, i)
- seq_printf(m, "%s\t%d\t%d\t%d\n",
- ss->legacy_name, ss->root->hierarchy_id,
+ seq_printf(m, "%16s %16d %16d %16d\n", ss->legacy_name,
+ ss->root->hierarchy_id,
atomic_read(&ss->root->nr_cgrps),
cgroup_ssid_enabled(i));
--
2.34.1
Hi, I found a discussion about this change in the email thread bellow, and hope it helps you. https://lore.kernel.org/all/YwMwlMv%2FtK3sRXbB@slm.duckdns.org/#t On 2024/4/9 10:18, Huan Yang wrote: > The current cgroups output format is based on tabs, which > may cause misalignment of output information. > > Using placeholder formatting can make the output information > more readable. > > Signed-off-by: Huan Yang <link@vivo.com> > --- > kernel/cgroup/cgroup-v1.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c > index 520a11cb12f4..c082a78f4c22 100644 > --- a/kernel/cgroup/cgroup-v1.c > +++ b/kernel/cgroup/cgroup-v1.c > @@ -669,15 +669,16 @@ int proc_cgroupstats_show(struct seq_file *m, void *v) > struct cgroup_subsys *ss; > int i; > > - seq_puts(m, "#subsys_name\thierarchy\tnum_cgroups\tenabled\n"); > + seq_printf(m, "%16s %16s %16s %16s\n", "#subsys_name", "hierarchy", > + "num_cgroups", "enabled"); > /* > * Grab the subsystems state racily. No need to add avenue to > * cgroup_mutex contention. > */ > > for_each_subsys(ss, i) > - seq_printf(m, "%s\t%d\t%d\t%d\n", > - ss->legacy_name, ss->root->hierarchy_id, > + seq_printf(m, "%16s %16d %16d %16d\n", ss->legacy_name, > + ss->root->hierarchy_id, > atomic_read(&ss->root->nr_cgrps), > cgroup_ssid_enabled(i)); >
HI jianfeng 在 2024/4/19 11:33, xiujianfeng 写道: > [Some people who received this message don't often get email from xiujianfeng@huawei.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > Hi, > > I found a discussion about this change in the email thread bellow, and > hope it helps you. It's helpful to know why this patch not need, thank you. > > https://lore.kernel.org/all/YwMwlMv%2FtK3sRXbB@slm.duckdns.org/#t I have a question, that, now that only for cgroup1, when I running qemu ubuntu, I got this: > mount | grep cgroup > cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot) Only cgroup2 mount in my system, but /proc/cgroup also worked, maybe better to disable this when only cgroup2 mounted? > On 2024/4/9 10:18, Huan Yang wrote: >> The current cgroups output format is based on tabs, which >> may cause misalignment of output information. >> >> Using placeholder formatting can make the output information >> more readable. >> >> Signed-off-by: Huan Yang <link@vivo.com> >> --- >> kernel/cgroup/cgroup-v1.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c >> index 520a11cb12f4..c082a78f4c22 100644 >> --- a/kernel/cgroup/cgroup-v1.c >> +++ b/kernel/cgroup/cgroup-v1.c >> @@ -669,15 +669,16 @@ int proc_cgroupstats_show(struct seq_file *m, void *v) >> struct cgroup_subsys *ss; >> int i; >> >> - seq_puts(m, "#subsys_name\thierarchy\tnum_cgroups\tenabled\n"); >> + seq_printf(m, "%16s %16s %16s %16s\n", "#subsys_name", "hierarchy", >> + "num_cgroups", "enabled"); >> /* >> * Grab the subsystems state racily. No need to add avenue to >> * cgroup_mutex contention. >> */ >> >> for_each_subsys(ss, i) >> - seq_printf(m, "%s\t%d\t%d\t%d\n", >> - ss->legacy_name, ss->root->hierarchy_id, >> + seq_printf(m, "%16s %16d %16d %16d\n", ss->legacy_name, >> + ss->root->hierarchy_id, >> atomic_read(&ss->root->nr_cgrps), >> cgroup_ssid_enabled(i)); >>
Hi, On 2024/4/19 14:25, Huan Yang wrote: > HI jianfeng > > 在 2024/4/19 11:33, xiujianfeng 写道: >> [Some people who received this message don't often get email from >> xiujianfeng@huawei.com. Learn why this is important at >> https://aka.ms/LearnAboutSenderIdentification ] >> >> Hi, >> >> I found a discussion about this change in the email thread bellow, and >> hope it helps you. > It's helpful to know why this patch not need, thank you. >> >> https://lore.kernel.org/all/YwMwlMv%2FtK3sRXbB@slm.duckdns.org/#t > > I have a question, that, now that only for cgroup1, when I running qemu > ubuntu, I got this: > >> mount | grep cgroup >> cgroup2 on /sys/fs/cgroup type cgroup2 > (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot) > > Only cgroup2 mount in my system, but /proc/cgroup also worked, maybe > better to disable this when only cgroup2 mounted? I’m not the maintainer, so the official answer to this question should be left to them:). However, I don’t think this is the right way. Even though the information shown by /proc/cgroups doesn’t seem as useful for cgroup2 as for cgroup1 due to cgroup2 has only single hierarchy, it’s not entirely useless, IMHO. > >> On 2024/4/9 10:18, Huan Yang wrote: >>> The current cgroups output format is based on tabs, which >>> may cause misalignment of output information. >>> >>> Using placeholder formatting can make the output information >>> more readable. >>> >>> Signed-off-by: Huan Yang <link@vivo.com> >>> --- >>> kernel/cgroup/cgroup-v1.c | 7 ++++--- >>> 1 file changed, 4 insertions(+), 3 deletions(-) >>> >>> diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c >>> index 520a11cb12f4..c082a78f4c22 100644 >>> --- a/kernel/cgroup/cgroup-v1.c >>> +++ b/kernel/cgroup/cgroup-v1.c >>> @@ -669,15 +669,16 @@ int proc_cgroupstats_show(struct seq_file *m, >>> void *v) >>> struct cgroup_subsys *ss; >>> int i; >>> >>> - seq_puts(m, "#subsys_name\thierarchy\tnum_cgroups\tenabled\n"); >>> + seq_printf(m, "%16s %16s %16s %16s\n", "#subsys_name", >>> "hierarchy", >>> + "num_cgroups", "enabled"); >>> /* >>> * Grab the subsystems state racily. No need to add avenue to >>> * cgroup_mutex contention. >>> */ >>> >>> for_each_subsys(ss, i) >>> - seq_printf(m, "%s\t%d\t%d\t%d\n", >>> - ss->legacy_name, ss->root->hierarchy_id, >>> + seq_printf(m, "%16s %16d %16d %16d\n", ss->legacy_name, >>> + ss->root->hierarchy_id, >>> atomic_read(&ss->root->nr_cgrps), >>> cgroup_ssid_enabled(i)); >>>
在 2024/4/20 10:47, xiujianfeng 写道: > However, I don’t think this is the right way. Even though the > information shown by /proc/cgroups doesn’t seem as useful for cgroup2 as > for cgroup1 due to cgroup2 has only single hierarchy, it’s not entirely OK, thanks for your reply > useless, IMHO.
© 2016 - 2026 Red Hat, Inc.