tools/power turbostat: KNL workaround for %Busy and Avg_MHz
authorHubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Mon, 14 Sep 2015 11:31:00 +0000 (13:31 +0200)
committerLen Brown <len.brown@intel.com>
Sat, 26 Sep 2015 04:50:54 +0000 (00:50 -0400)
commitb2b34dfe4d9aa4c468fc363b3b666974783ed1f9
tree1613d67821a25330cee5cdb348c41675f0cb177d
parent756357b8e4b072fd5ee86421f794e071a348802b
tools/power turbostat: KNL workaround for %Busy and Avg_MHz

KNL increments APERF and MPERF every 1024 clocks.
This is compliant with the architecture specification,
which requires that only the ratio of APERF/MPERF need be valid.

However, turbostat takes advantage of the fact that these
two MSRs increment every un-halted clock
at the actual and base frequency:

AVG_MHz = APERF_delta/measurement_interval

%Busy = MPERF_delta/TSC_delta

This quirk is needed for these calculations to also work on KNL,
which would otherwise show a value 1024x smaller than expected.

Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c