[PATCH 0/2] turbostat, support CPU0 hotplug

From: Prarit Bhargava
Date: Fri May 22 2015 - 08:01:16 EST


turbostat does not function properly on systems that support CPU0 hotplug.
When running turbostat on these systems the following error is seen.

[root@intel-chiefriver-04 ~]# turbostat ls
turbostat: no /dev/cpu/0/msr
Try "# modprobe msr": No such file or directory

This happens because in many places turbostat hardcodes 0, and calls
to check_dev_msr(), for example, will fail if CPU0 has been removed.

This patchset adds functionality to determine the lowest found cpu on the
system, and to use that value instead of 0. This patchset also moves
setup_all_buffers() to the beginning of the turbostat_init() so that
set_base_cpu() can take advantage of topo.max_cpu_num which is set in
setup_all_buffers().

After this change, on a system that has CPU0 removed,

[root@prarit ~]# ./turbostat -d -d ls
turbostat version 4.5 2 Apr, 2015 - Len Brown <lenb@xxxxxxxxxx>
num_cpus 7 max_cpu_num 7
cpu0 NOT PRESENT
cpu 1 pkg 0 core 0
cpu 2 pkg 0 core 1
cpu 3 pkg 0 core 1
cpu 4 pkg 0 core 2
cpu 5 pkg 0 core 2
cpu 6 pkg 0 core 3
cpu 7 pkg 0 core 3
<snip>
anaconda-ks.cfg README turbostat
Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CP
- - 492 14.20 3462 2634 0 18.90 0.00
0 1 353 9.95 3552 2645 0 9.68 0.00
1 2 217 7.70 2814 2614 0 64.63 0.00
1 3 2006 57.20 3507 2660 0 15.61
2 4 120 3.37 3570 2649 0 10.95 0.00
2 5 155 4.22 3679 2631 0 9.48
3 6 296 8.38 3530 2620 0 11.07 0.00
3 7 296 8.15 3630 2617 0 11.22
0.001160 sec

I have additionally tested various other hotplug configurations to make sure
that turbostat behaves correctly in those situations as well.

Prarit Bhargava (2):
turbostat, add base_cpu
turbostat, add set_base_cpu()

tools/power/x86/turbostat/turbostat.c | 49 +++++++++++++++++++++++++----------
1 file changed, 35 insertions(+), 14 deletions(-)

--
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/