2022-06-30 08:43:44

by Lin Feng

[permalink] [raw]
Subject: [PATCH] cgroup-v1: use find granularity format identifiers to make /proc/cgroups show pretty

The listing subsys info is unaligned with the header columns and we can
make the output more intuitive to read by specifying "left alignment"
and "fixed length" format styles for seq_printf.

# cat /proc/cgroups

the output originally:

#subsys_name hierarchy num_cgroups enabled
cpuset 11 19 1
cpu 5 122 1
cpuacct 5 122 1
blkio 4 122 1
memory 10 129 1
devices 6 122 1
freezer 9 19 1
net_cls 8 19 1
perf_event 3 19 1
net_prio 8 19 1
hugetlb 7 19 1
pids 12 122 1
rdma 2 1 1

output after this patch:

#subsys_name hierarchy num_cgroups enabled
cpuset 11 19 1
cpu 5 122 1
cpuacct 5 122 1
blkio 4 122 1
memory 10 129 1
devices 6 122 1
freezer 9 19 1
net_cls 8 19 1
perf_event 3 19 1
net_prio 8 19 1
hugetlb 7 19 1
pids 12 122 1
rdma 2 1 1

Signed-off-by: Lin Feng <[email protected]>
---
kernel/cgroup/cgroup-v1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index afc6c0e9c966..1a74b0c504aa 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -677,7 +677,7 @@ int proc_cgroupstats_show(struct seq_file *m, void *v)
*/

for_each_subsys(ss, i)
- seq_printf(m, "%s\t%d\t%d\t%d\n",
+ seq_printf(m, "%-12s\t%-10d\t%-10d\t%-d\n",
ss->legacy_name, ss->root->hierarchy_id,
atomic_read(&ss->root->nr_cgrps),
cgroup_ssid_enabled(i));
--
2.31.1


2022-07-01 01:33:18

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] cgroup-v1: use find granularity format identifiers to make /proc/cgroups show pretty

On Thu, Jun 30, 2022 at 04:25:39PM +0800, Lin Feng wrote:
> The listing subsys info is unaligned with the header columns and we can
> make the output more intuitive to read by specifying "left alignment"
> and "fixed length" format styles for seq_printf.

This has been proposed before but the file is useful only in cgroup1
which is in maintenance mode and the format has been like that since
forever. Given that there's some chance that it can break dumb
parsers, the choice has been to leave it alone. It's such a dumb file
format to begin with and just leaving it to wither and die seems to be
the right direction.

Thanks.

--
tejun

2022-07-01 02:09:21

by Lin Feng

[permalink] [raw]
Subject: Re: [PATCH] cgroup-v1: use find granularity format identifiers to make /proc/cgroups show pretty

Hi Tejun,

On 7/1/22 09:09, Tejun Heo wrote:
> On Thu, Jun 30, 2022 at 04:25:39PM +0800, Lin Feng wrote:
>> The listing subsys info is unaligned with the header columns and we can
>> make the output more intuitive to read by specifying "left alignment"
>> and "fixed length" format styles for seq_printf.
> This has been proposed before but the file is useful only in cgroup1
> which is in maintenance mode and the format has been like that since
> forever. Given that there's some chance that it can break dumb
> parsers, the choice has been to leave it alone. It's such a dumb file
> format to begin with and just leaving it to wither and die seems to be
> the right direction.

Thanks for your explanation and sorry that I missed we have such a consensus
before.

I had considered that if this change would break the parsers, but it's likely
that it won't else the parser is really a broken one and needs some improvements.
On the other hand, cgroup-v1 still has many old users and kernel still has to
maintain it for some time for back compatible reason, so I think this tiny fix
should not be a bad idea.

Thanks,
linfeng