]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
perf/arm-cmn: Improve debugfs pretty-printing for large configs
authorRobin Murphy <robin.murphy@arm.com>
Wed, 13 Dec 2023 16:24:07 +0000 (16:24 +0000)
committerWill Deacon <will@kernel.org>
Fri, 9 Feb 2024 16:00:08 +0000 (16:00 +0000)
The debugfs pretty-printer was written for the CMN-600 assumptions of a
maximum 8x8 mesh, but CMN-700 now allows coordinates and ID values up to
12 and 128 respectively, which can overflow the format strings, mess up
the alignment of the table and hurt overall readability. This table does
prove useful for double-checking that the driver is picking up the
topology of new systems correctly and for verifying user expectations,
so tweak the formatting to stay nice and readable with wider values.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/1d1517eadd1bac5992fab679c9dc531b381944da.1702484646.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm-cmn.c

index ac7a953fe9022ce119f288b197434c28a01ad6d3..564da632b8d1928451b9c950e3b3a6d5b5d45720 100644 (file)
@@ -493,6 +493,7 @@ static void arm_cmn_show_logid(struct seq_file *s, int x, int y, int p, int d)
 
        for (dn = cmn->dns; dn->type; dn++) {
                struct arm_cmn_nodeid nid = arm_cmn_nid(cmn, dn->id);
+               int pad = dn->logid < 10;
 
                if (dn->type == CMN_TYPE_XP)
                        continue;
@@ -503,7 +504,7 @@ static void arm_cmn_show_logid(struct seq_file *s, int x, int y, int p, int d)
                if (nid.x != x || nid.y != y || nid.port != p || nid.dev != d)
                        continue;
 
-               seq_printf(s, "   #%-2d  |", dn->logid);
+               seq_printf(s, " %*c#%-*d  |", pad + 1, ' ', 3 - pad, dn->logid);
                return;
        }
        seq_puts(s, "        |");
@@ -516,7 +517,7 @@ static int arm_cmn_map_show(struct seq_file *s, void *data)
 
        seq_puts(s, "     X");
        for (x = 0; x < cmn->mesh_x; x++)
-               seq_printf(s, "    %   ", x);
+               seq_printf(s, "    %-2d   ", x);
        seq_puts(s, "\nY P D+");
        y = cmn->mesh_y;
        while (y--) {
@@ -526,13 +527,13 @@ static int arm_cmn_map_show(struct seq_file *s, void *data)
                for (x = 0; x < cmn->mesh_x; x++)
                        seq_puts(s, "--------+");
 
-               seq_printf(s, "\n%   |", y);
+               seq_printf(s, "\n%-2d   |", y);
                for (x = 0; x < cmn->mesh_x; x++) {
                        struct arm_cmn_node *xp = cmn->xps + xp_base + x;
 
                        for (p = 0; p < CMN_MAX_PORTS; p++)
                                port[p][x] = arm_cmn_device_connect_info(cmn, xp, p);
-                       seq_printf(s, " XP #%-2d |", xp_base + x);
+                       seq_printf(s, " XP #%-3d|", xp_base + x);
                }
 
                seq_puts(s, "\n     |");