Commit 43d2d3b5 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

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

Pull cpupower utility fixes for 4.15-rc2 from Shuah Khan:

"This update consists of fixes to tool's handling of offline cpus.

The first patch fixes the tool to find information on the cpu it
is running on, instead of always looking for cpu0 and failing if
cpu0 happens to be offline.

The second patch fixes the incorrect check for offline cpu status."

* tag 'linux-cpupower-4.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux:
  cpupower : Fix cpupower working when cpu0 is offline
  cpupowerutils: bench - Fix cpu online check
parents e75080f1 dbdc468f
...@@ -61,7 +61,7 @@ int set_cpufreq_governor(char *governor, unsigned int cpu) ...@@ -61,7 +61,7 @@ int set_cpufreq_governor(char *governor, unsigned int cpu)
dprintf("set %s as cpufreq governor\n", governor); dprintf("set %s as cpufreq governor\n", governor);
if (cpupower_is_cpu_online(cpu) != 0) { if (cpupower_is_cpu_online(cpu) != 1) {
perror("cpufreq_cpu_exists"); perror("cpufreq_cpu_exists");
fprintf(stderr, "error: cpu %u does not exist\n", cpu); fprintf(stderr, "error: cpu %u does not exist\n", cpu);
return -1; return -1;
......
...@@ -130,15 +130,18 @@ static struct cpuidle_monitor *cpuidle_register(void) ...@@ -130,15 +130,18 @@ static struct cpuidle_monitor *cpuidle_register(void)
{ {
int num; int num;
char *tmp; char *tmp;
int this_cpu;
this_cpu = sched_getcpu();
/* Assume idle state count is the same for all CPUs */ /* Assume idle state count is the same for all CPUs */
cpuidle_sysfs_monitor.hw_states_num = cpuidle_state_count(0); cpuidle_sysfs_monitor.hw_states_num = cpuidle_state_count(this_cpu);
if (cpuidle_sysfs_monitor.hw_states_num <= 0) if (cpuidle_sysfs_monitor.hw_states_num <= 0)
return NULL; return NULL;
for (num = 0; num < cpuidle_sysfs_monitor.hw_states_num; num++) { for (num = 0; num < cpuidle_sysfs_monitor.hw_states_num; num++) {
tmp = cpuidle_state_name(0, num); tmp = cpuidle_state_name(this_cpu, num);
if (tmp == NULL) if (tmp == NULL)
continue; continue;
...@@ -146,7 +149,7 @@ static struct cpuidle_monitor *cpuidle_register(void) ...@@ -146,7 +149,7 @@ static struct cpuidle_monitor *cpuidle_register(void)
strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1); strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1);
free(tmp); free(tmp);
tmp = cpuidle_state_desc(0, num); tmp = cpuidle_state_desc(this_cpu, num);
if (tmp == NULL) if (tmp == NULL)
continue; continue;
strncpy(cpuidle_cstates[num].desc, tmp, CSTATE_DESC_LEN - 1); strncpy(cpuidle_cstates[num].desc, tmp, CSTATE_DESC_LEN - 1);
......
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