Commit 5202e32d authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge tag 'linux-cpupower-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux

Pull cpupower updates for v4.18-rc1 from Shuah Khan:

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

* tag 'linux-cpupower-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux:
  cpupower : Fix header name to read idle state name
  cpupower: fix spelling mistake: "logilename" -> "logfilename"
parents 3c89adb0 f9652d5c
...@@ -104,7 +104,7 @@ FILE *prepare_output(const char *dirname) ...@@ -104,7 +104,7 @@ FILE *prepare_output(const char *dirname)
dirname, time(NULL)); dirname, time(NULL));
} }
dprintf("logilename: %s\n", filename); dprintf("logfilename: %s\n", filename);
output = fopen(filename, "w+"); output = fopen(filename, "w+");
if (output == NULL) { if (output == NULL) {
......
...@@ -126,6 +126,20 @@ void fix_up_intel_idle_driver_name(char *tmp, int num) ...@@ -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) static struct cpuidle_monitor *cpuidle_register(void)
{ {
int num; int num;
...@@ -145,6 +159,7 @@ static struct cpuidle_monitor *cpuidle_register(void) ...@@ -145,6 +159,7 @@ static struct cpuidle_monitor *cpuidle_register(void)
if (tmp == NULL) if (tmp == NULL)
continue; continue;
map_power_idle_state_name(tmp);
fix_up_intel_idle_driver_name(tmp, num); fix_up_intel_idle_driver_name(tmp, num);
strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1); strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1);
free(tmp); free(tmp);
......
...@@ -70,36 +70,43 @@ void print_n_spaces(int n) ...@@ -70,36 +70,43 @@ void print_n_spaces(int n)
printf(" "); 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) int fill_string_with_spaces(char *s, int n)
{ {
char *temp;
int len = strlen(s); int len = strlen(s);
if (len > n)
if (len >= n)
return -1; return -1;
temp = malloc(sizeof(char) * (n+1));
for (; len < n; len++) for (; len < n; len++)
s[len] = ' '; s[len] = ' ';
s[len] = '\0'; s[len] = '\0';
snprintf(temp, n+1, " %s", s);
strcpy(s, temp);
free(temp);
return 0; return 0;
} }
#define MAX_COL_WIDTH 6
void print_header(int topology_depth) void print_header(int topology_depth)
{ {
int unsigned mon; int unsigned mon;
int state, need_len; int state, need_len;
cstate_t s; cstate_t s;
char buf[128] = ""; char buf[128] = "";
int percent_width = 4;
fill_string_with_spaces(buf, topology_depth * 5 - 1); fill_string_with_spaces(buf, topology_depth * 5 - 1);
printf("%s|", buf); printf("%s|", buf);
for (mon = 0; mon < avail_monitors; mon++) { 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; - 1;
if (mon != 0) { if (mon != 0)
printf("|| "); printf("||");
need_len--;
}
sprintf(buf, "%s", monitors[mon]->name); sprintf(buf, "%s", monitors[mon]->name);
fill_string_with_spaces(buf, need_len); fill_string_with_spaces(buf, need_len);
printf("%s", buf); printf("%s", buf);
...@@ -107,23 +114,21 @@ void print_header(int topology_depth) ...@@ -107,23 +114,21 @@ void print_header(int topology_depth)
printf("\n"); printf("\n");
if (topology_depth > 2) if (topology_depth > 2)
printf("PKG |"); printf(" PKG|");
if (topology_depth > 1) if (topology_depth > 1)
printf("CORE|"); printf("CORE|");
if (topology_depth > 0) if (topology_depth > 0)
printf("CPU |"); printf(" CPU|");
for (mon = 0; mon < avail_monitors; mon++) { for (mon = 0; mon < avail_monitors; mon++) {
if (mon != 0) if (mon != 0)
printf("|| "); printf("||");
else
printf(" ");
for (state = 0; state < monitors[mon]->hw_states_num; state++) { for (state = 0; state < monitors[mon]->hw_states_num; state++) {
if (state != 0) if (state != 0)
printf(" | "); printf("|");
s = monitors[mon]->hw_states[state]; s = monitors[mon]->hw_states[state];
sprintf(buf, "%s", s.name); sprintf(buf, "%s", s.name);
fill_string_with_spaces(buf, percent_width); fill_string_with_spaces(buf, MAX_COL_WIDTH);
printf("%s", buf); printf("%s", buf);
} }
printf(" "); printf(" ");
......
...@@ -15,7 +15,16 @@ ...@@ -15,7 +15,16 @@
#define MONITORS_MAX 20 #define MONITORS_MAX 20
#define MONITOR_NAME_LEN 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 #define CSTATE_NAME_LEN 5
#endif
#define CSTATE_DESC_LEN 60 #define CSTATE_DESC_LEN 60
int cpu_count; int cpu_count;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment