* [PATCH 0/2] cpupower-monitor fix error legs and remove hard-codes @ 2025-03-05 22:53 Shuah Khan 2025-03-05 22:53 ` [PATCH 1/2] pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology Shuah Khan 2025-03-05 22:53 ` [PATCH 2/2] pm: cpupower: remove hard-coded topology depth values Shuah Khan 0 siblings, 2 replies; 3+ messages in thread From: Shuah Khan @ 2025-03-05 22:53 UTC (permalink / raw) To: shuah, trenn, jwyatt, jkacur; +Cc: Shuah Khan, linux-pm, linux-kernel Two patch series fixes cpupower-monitor error legs to free cpu topology and replaces hard-coded topology depth values with defines. Shuah Khan (2): pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology pm: cpupower: remove hard-coded topology depth values .../utils/idle_monitor/cpupower-monitor.c | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology 2025-03-05 22:53 [PATCH 0/2] cpupower-monitor fix error legs and remove hard-codes Shuah Khan @ 2025-03-05 22:53 ` Shuah Khan 2025-03-05 22:53 ` [PATCH 2/2] pm: cpupower: remove hard-coded topology depth values Shuah Khan 1 sibling, 0 replies; 3+ messages in thread From: Shuah Khan @ 2025-03-05 22:53 UTC (permalink / raw) To: shuah, trenn, jwyatt, jkacur; +Cc: Shuah Khan, linux-pm, linux-kernel cmd_monitor() calls get_cpu_topology() to allocate memory for cpu topology and fails to release in error legs. Fix it to call cpu_topology_release() from error legs. Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> --- tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c index e123aa578881..0380d2e70016 100644 --- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c +++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c @@ -427,11 +427,13 @@ int cmd_monitor(int argc, char **argv) if (avail_monitors == 0) { printf(_("No HW Cstate monitors found\n")); + cpu_topology_release(cpu_top); return 1; } if (mode == list) { list_monitors(); + cpu_topology_release(cpu_top); exit(EXIT_SUCCESS); } -- 2.45.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] pm: cpupower: remove hard-coded topology depth values 2025-03-05 22:53 [PATCH 0/2] cpupower-monitor fix error legs and remove hard-codes Shuah Khan 2025-03-05 22:53 ` [PATCH 1/2] pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology Shuah Khan @ 2025-03-05 22:53 ` Shuah Khan 1 sibling, 0 replies; 3+ messages in thread From: Shuah Khan @ 2025-03-05 22:53 UTC (permalink / raw) To: shuah, trenn, jwyatt, jkacur; +Cc: Shuah Khan, linux-pm, linux-kernel Remove hard-coded topology depth values and replace them with defines to improve code readability and maintainability in cpupower-monitor code. Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> --- .../utils/idle_monitor/cpupower-monitor.c | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c index 0380d2e70016..ad493157f826 100644 --- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c +++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c @@ -92,7 +92,11 @@ int fill_string_with_spaces(char *s, int n) return 0; } -#define MAX_COL_WIDTH 6 +#define MAX_COL_WIDTH 6 +#define TOPOLOGY_DEPTH_PKG 3 +#define TOPOLOGY_DEPTH_CORE 2 +#define TOPOLOGY_DEPTH_CPU 1 + void print_header(int topology_depth) { int unsigned mon; @@ -114,12 +118,19 @@ void print_header(int topology_depth) } printf("\n"); - if (topology_depth > 2) + switch (topology_depth) { + case TOPOLOGY_DEPTH_PKG: printf(" PKG|"); - if (topology_depth > 1) + break; + case TOPOLOGY_DEPTH_CORE: printf("CORE|"); - if (topology_depth > 0) + break; + case TOPOLOGY_DEPTH_CPU: printf(" CPU|"); + break; + default: + return; + } for (mon = 0; mon < avail_monitors; mon++) { if (mon != 0) @@ -153,12 +164,19 @@ void print_results(int topology_depth, int cpu) cpu_top.core_info[cpu].pkg == -1) return; - if (topology_depth > 2) + switch (topology_depth) { + case TOPOLOGY_DEPTH_PKG: printf("%4d|", cpu_top.core_info[cpu].pkg); - if (topology_depth > 1) + break; + case TOPOLOGY_DEPTH_CORE: printf("%4d|", cpu_top.core_info[cpu].core); - if (topology_depth > 0) + break; + case TOPOLOGY_DEPTH_CPU: printf("%4d|", cpu_top.core_info[cpu].cpu); + break; + default: + return; + } for (mon = 0; mon < avail_monitors; mon++) { if (mon != 0) @@ -454,15 +472,15 @@ int cmd_monitor(int argc, char **argv) /* ToDo: Topology parsing needs fixing first to do this more generically */ if (cpu_top.pkgs > 1) - print_header(3); + print_header(TOPOLOGY_DEPTH_PKG); else - print_header(1); + print_header(TOPOLOGY_DEPTH_CPU); for (cpu = 0; cpu < cpu_count; cpu++) { if (cpu_top.pkgs > 1) - print_results(3, cpu); + print_results(TOPOLOGY_DEPTH_PKG, cpu); else - print_results(1, cpu); + print_results(TOPOLOGY_DEPTH_CPU, cpu); } for (num = 0; num < avail_monitors; num++) { -- 2.45.2 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-03-05 22:53 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-03-05 22:53 [PATCH 0/2] cpupower-monitor fix error legs and remove hard-codes Shuah Khan 2025-03-05 22:53 ` [PATCH 1/2] pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology Shuah Khan 2025-03-05 22:53 ` [PATCH 2/2] pm: cpupower: remove hard-coded topology depth values Shuah Khan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox