Skip to content

Commit

Permalink
Merge tag 'linux-cpupower-4.15-rc2' of git://git.kernel.org/pub/scm/l…
Browse files Browse the repository at this point in the history
…inux/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
  • Loading branch information
rafaeljw committed Nov 18, 2017
2 parents e75080f + dbdc468 commit 43d2d3b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
2 changes: 1 addition & 1 deletion tools/power/cpupower/bench/system.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ int set_cpufreq_governor(char *governor, unsigned int cpu)

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");
fprintf(stderr, "error: cpu %u does not exist\n", cpu);
return -1;
Expand Down
9 changes: 6 additions & 3 deletions tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,26 @@ static struct cpuidle_monitor *cpuidle_register(void)
{
int num;
char *tmp;
int this_cpu;

this_cpu = sched_getcpu();

/* 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)
return NULL;

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

fix_up_intel_idle_driver_name(tmp, num);
strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1);
free(tmp);

tmp = cpuidle_state_desc(0, num);
tmp = cpuidle_state_desc(this_cpu, num);
if (tmp == NULL)
continue;
strncpy(cpuidle_cstates[num].desc, tmp, CSTATE_DESC_LEN - 1);
Expand Down

0 comments on commit 43d2d3b

Please sign in to comment.