]> git.baikalelectronics.ru Git - kernel.git/commit
tools/power turbostat: Fix CPU%C1 display value
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tue, 27 Aug 2019 17:57:14 +0000 (10:57 -0700)
committerLen Brown <len.brown@intel.com>
Sat, 31 Aug 2019 18:48:39 +0000 (14:48 -0400)
commit9c5a5c049d7accbf68ec9a1107766d882b231d73
tree4528d38b9233caa747f98e7f97ac04ca3771a14a
parent7a666059187ac9358aacc9ca9883a3c8d1c9a741
tools/power turbostat: Fix CPU%C1 display value

In some case C1% will be wrong value, when platform doesn't have MSR for
C1 residency.

For example:
Core    CPU     CPU%c1
-       -       100.00
0       0       100.00
0       2       100.00
1       1       100.00
1       3       100.00

But adding Busy% will fix this
Core    CPU     Busy%   CPU%c1
-       -       99.77   0.23
0       0       99.77   0.23
0       2       99.77   0.23
1       1       99.77   0.23
1       3       99.77   0.23

This issue can be reproduced on most of the recent systems including
Broadwell, Skylake and later.

This is because if we don't select Busy% or Avg_MHz or Bzy_MHz then
mperf value will not be read from MSR, so it will be 0. But this
is required for C1% calculation when MSR for C1 residency is not present.
Same is true for C3, C6 and C7 column selection.

So add another define DO_BIC_READ(), which doesn't depend on user
column selection and use for mperf, C3, C6 and C7 related counters.
So when there is no platform support for C1 residency counters,
we still read these counters, if the CPU has support and user selected
display of CPU%c1.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c