linux-cpupower-4.15-rc2

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.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJaDyPgAAoJEAsCRMQNDUMcw88P/1LYlu4RXoVzReu14yy8U4XK
 bWQdc2uAGu0fdTf9olrk4OsCGP4Hbs3nDGf1VaOYWU2Gn87DhpiIWuJ0See0X4Gs
 6i7U8kLWRVtbJT25pvt5hNgW7udtKkhpXpfJOSQCKR3qB8rpvX6b+ueBmyCAHvuQ
 i5AnN9oiZopUQiCeXYDqO04CF/hr9aKRJQUBgeSjIiGeGvwOqCUWZrsVuUCR17Xj
 Bi5MG5qI/ufMYuy7FRPxMgne30OIA5y2axVTuhxLhR5mg+KXennMCltv8xQMeRUM
 e/dqKDsyXr1a4tq5u91j88L+yZrFYP3oS2oO97RpGhD7wjcHbrf17JW0cl4BVm3q
 u6Lpg22HdYMcyMZkVqTcP181PX9+Dbn/3vvpHWpNEqMg/LMUrrGa442nqtOZTB5Y
 flqpbhsDmaKMvIqqW7b0D8tbm1JKBRETqUaFeaGXcpAtzlWS9+4djdQiGpRu9JEf
 Q8YXazIrm9EYzKcNPor0m7ItxIxPWwD5xMU+jF3mqdM08zbU//he48hysryqtnbD
 cHpDpLwO6uaXtg+wEe+30mFGd2urvBTV0Y6pd0ok2FTnJRTY/OY9c6BhltUhpvBO
 zgf8AKhFBULrt/l/x0OQ0xJ7s9kfEDSnoDtr8sNM9Poc/2BajCSanWKRmzSmqNnZ
 rC9m7FKfJkQ8Lm/i0hkW
 =Xe5t
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Rafael J. Wysocki 2017-11-18 15:05:31 +01:00
commit 43d2d3b56d
2 changed files with 7 additions and 4 deletions

View File

@ -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;

View File

@ -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)
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);