[PATCH] tools/power turbostat: fix output formatting for ACPI CST enumeration

From: David Arcari
Date: Mon Aug 10 2020 - 10:43:46 EST


turbostat formatting is broken with ACPI CST for enumeration. The
problem is that the CX_ACPI% is eight characters long which does not
work with tab formatting. One simple solution is to remove the underbar
from the state name such that C1_ACPI will be displayed as C1ACPI.

Signed-off-by: David Arcari <darcari@xxxxxxxxxx>
Cc: Len Brown <lenb@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
tools/power/x86/turbostat/turbostat.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 33b370865d16..5f074879cc0a 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -3474,6 +3474,20 @@ int has_config_tdp(unsigned int family, unsigned int model)
}
}

+static void
+remove_underbar(char *s)
+{
+ char *to = s;
+
+ while (*s) {
+ if (*s != '_')
+ *to++ = *s;
+ s++;
+ }
+
+ *to = 0;
+}
+
static void
dump_cstate_pstate_config_info(unsigned int family, unsigned int model)
{
@@ -3559,6 +3573,8 @@ dump_sysfs_cstate_config(void)
*sp = '\0';
fclose(input);

+ remove_underbar(name_buf);
+
sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/desc",
base_cpu, state);
input = fopen(path, "r");
@@ -5597,6 +5613,8 @@ void probe_sysfs(void)
*sp = '%';
*(sp + 1) = '\0';

+ remove_underbar(name_buf);
+
fclose(input);

sprintf(path, "cpuidle/state%d/time", state);
@@ -5624,6 +5642,8 @@ void probe_sysfs(void)
*sp = '\0';
fclose(input);

+ remove_underbar(name_buf);
+
sprintf(path, "cpuidle/state%d/usage", state);

if (is_deferred_skip(name_buf))
--
2.27.0