diff mbox

[GIT,PULL] cpupower update for Linux 4.18-rc1

Message ID 559de2f1-fdf6-7010-2e01-d20765551065@kernel.org (mailing list archive)
State Not Applicable, archived
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-4.18-rc1

Commit Message

shuah June 4, 2018, 10:03 p.m. UTC
Hi Rafael,

If it isn't too late, please pull this update. A fix came in last
week to refine the cpupower monitor command.

This cpupower update for 4.18-rc1 consists of two minor fixes.

diff is attached.

thanks,
-- Shuah

----------------------------------------------------------------

The following changes since commit 75bc37fefc4471e718ba8e651aa74673d4e0a9eb:

  Linux 4.17-rc4 (2018-05-06 16:57:38 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-4.18-rc1

for you to fetch changes up to f9652d5cae04eb5e85303c087f5842d320499c65:

  cpupower : Fix header name to read idle state name (2018-05-29 10:48:33 -0600)

----------------------------------------------------------------
linux-cpupower-4.18-rc1

This cpupower update for 4.18-rc1 consists of two minor fixes.

----------------------------------------------------------------
Abhishek Goel (1):
      cpupower : Fix header name to read idle state name

Colin Ian King (1):
      cpupower: fix spelling mistake: "logilename" -> "logfilename"

 tools/power/cpupower/bench/parse.c                 |  2 +-
 .../cpupower/utils/idle_monitor/cpuidle_sysfs.c    | 15 ++++++++++
 .../cpupower/utils/idle_monitor/cpupower-monitor.c | 35 ++++++++++++----------
 .../cpupower/utils/idle_monitor/cpupower-monitor.h |  9 ++++++
 4 files changed, 45 insertions(+), 16 deletions(-)
----------------------------------------------------------------

Comments

Rafael J. Wysocki June 6, 2018, 6:44 a.m. UTC | #1
On Tue, Jun 5, 2018 at 12:03 AM, Shuah Khan <shuah@kernel.org> wrote:
> Hi Rafael,

Hi Shuah,

> If it isn't too late, please pull this update. A fix came in last
> week to refine the cpupower monitor command.
>
> This cpupower update for 4.18-rc1 consists of two minor fixes.
>
> diff is attached.

Pulled, thanks!

I'll queue it up for the second half of the merge window.

Cheers,
Rafael


> ----------------------------------------------------------------
>
> The following changes since commit 75bc37fefc4471e718ba8e651aa74673d4e0a9eb:
>
>   Linux 4.17-rc4 (2018-05-06 16:57:38 -1000)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-4.18-rc1
>
> for you to fetch changes up to f9652d5cae04eb5e85303c087f5842d320499c65:
>
>   cpupower : Fix header name to read idle state name (2018-05-29 10:48:33 -0600)
>
> ----------------------------------------------------------------
> linux-cpupower-4.18-rc1
>
> This cpupower update for 4.18-rc1 consists of two minor fixes.
>
> ----------------------------------------------------------------
> Abhishek Goel (1):
>       cpupower : Fix header name to read idle state name
>
> Colin Ian King (1):
>       cpupower: fix spelling mistake: "logilename" -> "logfilename"
>
>  tools/power/cpupower/bench/parse.c                 |  2 +-
>  .../cpupower/utils/idle_monitor/cpuidle_sysfs.c    | 15 ++++++++++
>  .../cpupower/utils/idle_monitor/cpupower-monitor.c | 35 ++++++++++++----------
>  .../cpupower/utils/idle_monitor/cpupower-monitor.h |  9 ++++++
>  4 files changed, 45 insertions(+), 16 deletions(-)
> ----------------------------------------------------------------
diff mbox

Patch

diff --git a/tools/power/cpupower/bench/parse.c b/tools/power/cpupower/bench/parse.c
index 9b65f052081f..9ba8a44ad2a7 100644
--- a/tools/power/cpupower/bench/parse.c
+++ b/tools/power/cpupower/bench/parse.c
@@ -104,7 +104,7 @@  FILE *prepare_output(const char *dirname)
 			dirname, time(NULL));
 	}
 
-	dprintf("logilename: %s\n", filename);
+	dprintf("logfilename: %s\n", filename);
 
 	output = fopen(filename, "w+");
 	if (output == NULL) {
diff --git a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
index 5b3205f16217..5b8c4956ff9a 100644
--- a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
+++ b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
@@ -126,6 +126,20 @@  void fix_up_intel_idle_driver_name(char *tmp, int num)
 	}
 }
 
+#ifdef __powerpc__
+void map_power_idle_state_name(char *tmp)
+{
+	if (!strncmp(tmp, "stop0_lite", CSTATE_NAME_LEN))
+		strcpy(tmp, "stop0L");
+	else if (!strncmp(tmp, "stop1_lite", CSTATE_NAME_LEN))
+		strcpy(tmp, "stop1L");
+	else if (!strncmp(tmp, "stop2_lite", CSTATE_NAME_LEN))
+		strcpy(tmp, "stop2L");
+}
+#else
+void map_power_idle_state_name(char *tmp) { }
+#endif
+
 static struct cpuidle_monitor *cpuidle_register(void)
 {
 	int num;
@@ -145,6 +159,7 @@  static struct cpuidle_monitor *cpuidle_register(void)
 		if (tmp == NULL)
 			continue;
 
+		map_power_idle_state_name(tmp);
 		fix_up_intel_idle_driver_name(tmp, num);
 		strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1);
 		free(tmp);
diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
index 05f953f0f0a0..051da0a7c454 100644
--- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
+++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c
@@ -70,36 +70,43 @@  void print_n_spaces(int n)
 		printf(" ");
 }
 
-/* size of s must be at least n + 1 */
+/*s is filled with left and right spaces
+ *to make its length atleast n+1
+ */
 int fill_string_with_spaces(char *s, int n)
 {
+	char *temp;
 	int len = strlen(s);
-	if (len > n)
+
+	if (len >= n)
 		return -1;
+
+	temp = malloc(sizeof(char) * (n+1));
 	for (; len < n; len++)
 		s[len] = ' ';
 	s[len] = '\0';
+	snprintf(temp, n+1, " %s", s);
+	strcpy(s, temp);
+	free(temp);
 	return 0;
 }
 
+#define MAX_COL_WIDTH 6
 void print_header(int topology_depth)
 {
 	int unsigned mon;
 	int state, need_len;
 	cstate_t s;
 	char buf[128] = "";
-	int percent_width = 4;
 
 	fill_string_with_spaces(buf, topology_depth * 5 - 1);
 	printf("%s|", buf);
 
 	for (mon = 0; mon < avail_monitors; mon++) {
-		need_len = monitors[mon]->hw_states_num * (percent_width + 3)
+		need_len = monitors[mon]->hw_states_num * (MAX_COL_WIDTH + 1)
 			- 1;
-		if (mon != 0) {
-			printf("|| ");
-			need_len--;
-		}
+		if (mon != 0)
+			printf("||");
 		sprintf(buf, "%s", monitors[mon]->name);
 		fill_string_with_spaces(buf, need_len);
 		printf("%s", buf);
@@ -107,23 +114,21 @@  void print_header(int topology_depth)
 	printf("\n");
 
 	if (topology_depth > 2)
-		printf("PKG |");
+		printf(" PKG|");
 	if (topology_depth > 1)
 		printf("CORE|");
 	if (topology_depth > 0)
-		printf("CPU |");
+		printf(" CPU|");
 
 	for (mon = 0; mon < avail_monitors; mon++) {
 		if (mon != 0)
-			printf("|| ");
-		else
-			printf(" ");
+			printf("||");
 		for (state = 0; state < monitors[mon]->hw_states_num; state++) {
 			if (state != 0)
-				printf(" | ");
+				printf("|");
 			s = monitors[mon]->hw_states[state];
 			sprintf(buf, "%s", s.name);
-			fill_string_with_spaces(buf, percent_width);
+			fill_string_with_spaces(buf, MAX_COL_WIDTH);
 			printf("%s", buf);
 		}
 		printf(" ");
diff --git a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
index 9e43f3371fbc..2ae50b499e0a 100644
--- a/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
+++ b/tools/power/cpupower/utils/idle_monitor/cpupower-monitor.h
@@ -15,7 +15,16 @@ 
 
 #define MONITORS_MAX 20
 #define MONITOR_NAME_LEN 20
+
+/* CSTATE_NAME_LEN is limited by header field width defined
+ * in cpupower-monitor.c. Header field width is defined to be
+ * sum of percent width and two spaces for padding.
+ */
+#ifdef __powerpc__
+#define CSTATE_NAME_LEN 7
+#else
 #define CSTATE_NAME_LEN 5
+#endif
 #define CSTATE_DESC_LEN 60
 
 int cpu_count;