* [PATCH 0/4] pmdomain: core: Debug summary improvements
@ 2024-09-04 14:30 Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 1/4] pmdomain: core: Harden inter-column space in debug summary Geert Uytterhoeven
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2024-09-04 14:30 UTC (permalink / raw)
To: Ulf Hansson, Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa
Cc: linux-pm, linux-renesas-soc, linux-kernel, Geert Uytterhoeven
Hi Ulf,
This patch series improves the table formatting in the pm_genpd_summary
file in debugfs.
The first two patches are fixes and cleanups for commits in upstream.
On systems where performance_state is always zero, the first three
patches have no visible impact.
Thanks for your comments!
Geert Uytterhoeven (4):
pmdomain: core: Harden inter-column space in debug summary
pmdomain: core: Fix "managed by" alignment in debug summary
pmdomain: core: Move mode_status_str()
pmdomain: core: Reduce debug summary table width
drivers/pmdomain/core.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
--
2.34.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] pmdomain: core: Harden inter-column space in debug summary
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
@ 2024-09-04 14:30 ` Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 2/4] pmdomain: core: Fix "managed by" alignment " Geert Uytterhoeven
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2024-09-04 14:30 UTC (permalink / raw)
To: Ulf Hansson, Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa
Cc: linux-pm, linux-renesas-soc, linux-kernel, Geert Uytterhoeven
The inter-column space in the debug summary is two spaces. However, in
one case, the extra space is handled implicitly in a field width
specifier. Make inter-column space explicit to ease future maintenance.
Fixes: 45fbc464b047b3fb ("PM: domains: Add "performance" column to debug summary")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
drivers/pmdomain/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index 6a8c814f967dda35..afa4e75863a40b49 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -3352,7 +3352,7 @@ static int genpd_summary_one(struct seq_file *s,
else
snprintf(state, sizeof(state), "%s",
status_lookup[genpd->status]);
- seq_printf(s, "%-30s %-50s %u", genpd->name, state, genpd->performance_state);
+ seq_printf(s, "%-30s %-49s %u", genpd->name, state, genpd->performance_state);
/*
* Modifications on the list require holding locks on both
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/4] pmdomain: core: Fix "managed by" alignment in debug summary
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 1/4] pmdomain: core: Harden inter-column space in debug summary Geert Uytterhoeven
@ 2024-09-04 14:30 ` Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 3/4] pmdomain: core: Move mode_status_str() Geert Uytterhoeven
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2024-09-04 14:30 UTC (permalink / raw)
To: Ulf Hansson, Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa
Cc: linux-pm, linux-renesas-soc, linux-kernel, Geert Uytterhoeven
The "performance" column contains variable-width values. Hence when
their printed values contain more than one digit, all values in
successive columns become misaligned.
Fix this by formatting it as a fixed-width field. Adjust successive
spaces and field widths to retain the exiting layout.
Fixes: 0155aaf95a2a09ba ("PM: domains: Add the domain HW-managed mode to the summary")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Tested by printing pseudo-random numbers instead of the actual
performance_state, as the latter is always zero for me.
---
drivers/pmdomain/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index afa4e75863a40b49..912bdc131fc0e2b1 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -3317,7 +3317,7 @@ static void mode_status_str(struct seq_file *s, struct device *dev)
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
- seq_printf(s, "%20s", gpd_data->hw_mode ? "HW" : "SW");
+ seq_printf(s, "%9s", gpd_data->hw_mode ? "HW" : "SW");
}
static void perf_status_str(struct seq_file *s, struct device *dev)
@@ -3325,7 +3325,7 @@ static void perf_status_str(struct seq_file *s, struct device *dev)
struct generic_pm_domain_data *gpd_data;
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
- seq_put_decimal_ull(s, "", gpd_data->performance_state);
+ seq_printf(s, "%-10u ", gpd_data->performance_state);
}
static int genpd_summary_one(struct seq_file *s,
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/4] pmdomain: core: Move mode_status_str()
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 1/4] pmdomain: core: Harden inter-column space in debug summary Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 2/4] pmdomain: core: Fix "managed by" alignment " Geert Uytterhoeven
@ 2024-09-04 14:30 ` Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 4/4] pmdomain: core: Reduce debug summary table width Geert Uytterhoeven
2024-09-13 12:02 ` [PATCH 0/4] pmdomain: core: Debug summary improvements Ulf Hansson
4 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2024-09-04 14:30 UTC (permalink / raw)
To: Ulf Hansson, Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa
Cc: linux-pm, linux-renesas-soc, linux-kernel, Geert Uytterhoeven
Move mode_status_str() below perf_status_str(), to make declaration
order match calling order of the various *_status_str() helpers.
While at it, add a blank line for consistency among the three helpers.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
drivers/pmdomain/core.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index 912bdc131fc0e2b1..2233daaa4168be14 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -3311,21 +3311,22 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev)
seq_printf(s, "%-25s ", p);
}
-static void mode_status_str(struct seq_file *s, struct device *dev)
+static void perf_status_str(struct seq_file *s, struct device *dev)
{
struct generic_pm_domain_data *gpd_data;
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
- seq_printf(s, "%9s", gpd_data->hw_mode ? "HW" : "SW");
+ seq_printf(s, "%-10u ", gpd_data->performance_state);
}
-static void perf_status_str(struct seq_file *s, struct device *dev)
+static void mode_status_str(struct seq_file *s, struct device *dev)
{
struct generic_pm_domain_data *gpd_data;
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
- seq_printf(s, "%-10u ", gpd_data->performance_state);
+
+ seq_printf(s, "%9s", gpd_data->hw_mode ? "HW" : "SW");
}
static int genpd_summary_one(struct seq_file *s,
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 4/4] pmdomain: core: Reduce debug summary table width
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
` (2 preceding siblings ...)
2024-09-04 14:30 ` [PATCH 3/4] pmdomain: core: Move mode_status_str() Geert Uytterhoeven
@ 2024-09-04 14:30 ` Geert Uytterhoeven
2024-09-13 12:02 ` [PATCH 0/4] pmdomain: core: Debug summary improvements Ulf Hansson
4 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2024-09-04 14:30 UTC (permalink / raw)
To: Ulf Hansson, Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa
Cc: linux-pm, linux-renesas-soc, linux-kernel, Geert Uytterhoeven
Commit 9094e53ff5c86ebe ("pmdomain: core: Use dev_name() instead of
kobject_get_path() in debugfs") severely shortened the names of devices
in a PM Domain. Now the most common format[1] consists of a 32-bit
unit-address (8 characters), followed by a dot and a node name (20
characters for "air-pollution-sensor" and "interrupt-controller", which
are the longest generic node names documented in the Devicetree
Specification), for a typical maximum of 29 characters.
This offers a good opportunity to reduce the table width of the debug
summary:
- Reduce the device name field width from 50 to 30 characters, which
matches the PM Domain name width,
- Reduce the large inter-column space between the "performance" and
"managed by" columns.
Visual impact:
- The "performance" column now starts at a position that is a
multiple of 16, just like the "status" and "children" columns,
- All of the "/device", "runtime status", and "managed by" columns are
now indented 4 characters more than the columns right above them,
- Everything fits in (one less than) 80 characters again ;-)
[1] Note that some device names (e.g. TI AM335x interconnect target
modules) do not follow this convention, and may be much longer, but
these didn't fit in the old 50-character column width either.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
On the Koelsch development board with an R-Car M2-W SoC, the contents of
/sys/kernel/debug/pm_genpd/pm_genpd_summary change from:
domain status children performance
/device runtime status managed by
------------------------------------------------------------------------------------------------------------
clock-controller on 0
sgx off-0 0
sh-4a off-0 0
ca15-cpu1 on 0
ca15-cpu0 on 0
ca15-scu on 0
ca15-cpu0, ca15-cpu1
always-on on 0
ca15-scu, sh-4a, sgx
e60b0000.i2c suspended 0 SW
ffca0000.timer suspended 0 SW
e6590100.usb-phy-controller unsupported 0 SW
e6050000.gpio suspended 0 SW
e6051000.gpio suspended 0 SW
e6052000.gpio active 0 SW
e6053000.gpio active 0 SW
e6054000.gpio suspended 0 SW
e6055000.gpio active 0 SW
e6055400.gpio active 0 SW
e6055800.gpio active 0 SW
ee090000.pci active 0 SW
ee0d0000.pci active 0 SW
e6700000.dma-controller active 0 SW
e6720000.dma-controller active 0 SW
ec700000.dma-controller suspended 0 SW
ec720000.dma-controller suspended 0 SW
e65a0000.dma-controller suspended 0 SW
e65b0000.dma-controller suspended 0 SW
e6e60000.serial active 0 SW
e6e68000.serial active 0 SW
ee300000.sata active 0 SW
e6b10000.spi suspended 0 SW
e6e20000.spi suspended 0 SW
e6518000.i2c suspended 0 SW
e6530000.i2c suspended 0 SW
e6520000.i2c suspended 0 SW
e61f0000.thermal active 0 SW
ec500000.sound suspended 0 SW
e61c0000.interrupt-controller active 0 SW
ee700000.ethernet active 0 SW
ee100000.mmc suspended 0 SW
ee140000.mmc suspended 0 SW
ee160000.mmc suspended 0 SW
to:
domain status children performance
/device runtime status managed by
------------------------------------------------------------------------------
clock-controller on 0
sgx off-0 0
sh-4a off-0 0
ca15-cpu1 on 0
ca15-cpu0 on 0
ca15-scu on 0
ca15-cpu0, ca15-cpu1
always-on on 0
ca15-scu, sh-4a, sgx
e60b0000.i2c suspended 0 SW
ffca0000.timer suspended 0 SW
e6590100.usb-phy-controller unsupported 0 SW
e6050000.gpio suspended 0 SW
e6051000.gpio suspended 0 SW
e6052000.gpio active 0 SW
e6053000.gpio active 0 SW
e6054000.gpio suspended 0 SW
e6055000.gpio active 0 SW
e6055400.gpio active 0 SW
e6055800.gpio active 0 SW
ee090000.pci active 0 SW
ee0d0000.pci active 0 SW
e6700000.dma-controller active 0 SW
e6720000.dma-controller active 0 SW
ec700000.dma-controller suspended 0 SW
ec720000.dma-controller suspended 0 SW
e65a0000.dma-controller suspended 0 SW
e65b0000.dma-controller suspended 0 SW
e6e60000.serial active 0 SW
e6e68000.serial active 0 SW
ee300000.sata active 0 SW
e6b10000.spi suspended 0 SW
e6e20000.spi suspended 0 SW
e6518000.i2c suspended 0 SW
e6530000.i2c suspended 0 SW
e6520000.i2c suspended 0 SW
e61f0000.thermal active 0 SW
ec500000.sound suspended 0 SW
e61c0000.interrupt-controller active 0 SW
ee700000.ethernet active 0 SW
ee100000.mmc suspended 0 SW
ee140000.mmc suspended 0 SW
ee160000.mmc suspended 0 SW
---
drivers/pmdomain/core.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index 2233daaa4168be14..2c51de5d58372d3d 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -3308,7 +3308,7 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev)
else
WARN_ON(1);
- seq_printf(s, "%-25s ", p);
+ seq_printf(s, "%-26s ", p);
}
static void perf_status_str(struct seq_file *s, struct device *dev)
@@ -3326,7 +3326,7 @@ static void mode_status_str(struct seq_file *s, struct device *dev)
gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
- seq_printf(s, "%9s", gpd_data->hw_mode ? "HW" : "SW");
+ seq_printf(s, "%2s", gpd_data->hw_mode ? "HW" : "SW");
}
static int genpd_summary_one(struct seq_file *s,
@@ -3353,7 +3353,7 @@ static int genpd_summary_one(struct seq_file *s,
else
snprintf(state, sizeof(state), "%s",
status_lookup[genpd->status]);
- seq_printf(s, "%-30s %-49s %u", genpd->name, state, genpd->performance_state);
+ seq_printf(s, "%-30s %-30s %u", genpd->name, state, genpd->performance_state);
/*
* Modifications on the list require holding locks on both
@@ -3369,7 +3369,7 @@ static int genpd_summary_one(struct seq_file *s,
}
list_for_each_entry(pm_data, &genpd->dev_list, list_node) {
- seq_printf(s, "\n %-50s ", dev_name(pm_data->dev));
+ seq_printf(s, "\n %-30s ", dev_name(pm_data->dev));
rtpm_status_str(s, pm_data->dev);
perf_status_str(s, pm_data->dev);
mode_status_str(s, pm_data->dev);
@@ -3387,9 +3387,9 @@ static int summary_show(struct seq_file *s, void *data)
struct generic_pm_domain *genpd;
int ret = 0;
- seq_puts(s, "domain status children performance\n");
- seq_puts(s, " /device runtime status managed by\n");
- seq_puts(s, "------------------------------------------------------------------------------------------------------------\n");
+ seq_puts(s, "domain status children performance\n");
+ seq_puts(s, " /device runtime status managed by\n");
+ seq_puts(s, "------------------------------------------------------------------------------\n");
ret = mutex_lock_interruptible(&gpd_list_lock);
if (ret)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] pmdomain: core: Debug summary improvements
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
` (3 preceding siblings ...)
2024-09-04 14:30 ` [PATCH 4/4] pmdomain: core: Reduce debug summary table width Geert Uytterhoeven
@ 2024-09-13 12:02 ` Ulf Hansson
4 siblings, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2024-09-13 12:02 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Viresh Kumar, Rafael J . Wysocki, Dmitry Osipenko,
Dmitry Baryshkov, Jagadeesh Kona, Taniya Das, Abel Vesa,
linux-pm, linux-renesas-soc, linux-kernel
On Wed, 4 Sept 2024 at 16:30, Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
>
> Hi Ulf,
>
> This patch series improves the table formatting in the pm_genpd_summary
> file in debugfs.
>
> The first two patches are fixes and cleanups for commits in upstream.
> On systems where performance_state is always zero, the first three
> patches have no visible impact.
>
> Thanks for your comments!
>
> Geert Uytterhoeven (4):
> pmdomain: core: Harden inter-column space in debug summary
> pmdomain: core: Fix "managed by" alignment in debug summary
> pmdomain: core: Move mode_status_str()
> pmdomain: core: Reduce debug summary table width
>
> drivers/pmdomain/core.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
Applied for next, thanks!
Kind regards
Uffe
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-13 12:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-04 14:30 [PATCH 0/4] pmdomain: core: Debug summary improvements Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 1/4] pmdomain: core: Harden inter-column space in debug summary Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 2/4] pmdomain: core: Fix "managed by" alignment " Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 3/4] pmdomain: core: Move mode_status_str() Geert Uytterhoeven
2024-09-04 14:30 ` [PATCH 4/4] pmdomain: core: Reduce debug summary table width Geert Uytterhoeven
2024-09-13 12:02 ` [PATCH 0/4] pmdomain: core: Debug summary improvements Ulf Hansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®