tools/power turbostat: simplify Bzy_MHz calculation
authorLen Brown <len.brown@intel.com>
Tue, 20 Oct 2015 02:37:40 +0000 (22:37 -0400)
committerLen Brown <len.brown@intel.com>
Tue, 20 Oct 2015 02:50:01 +0000 (22:50 -0400)
commit21ed5574d1622118b49b0c6342acc8d27d0799be
tree820cff28eaa5434ab74155d2a5b18cf6b8f11699
parent7379047d5585187d1288486d4627873170d0005a
tools/power turbostat: simplify Bzy_MHz calculation

    Bzy_MHz = TSC_delta*tsc_tweak/APERF_delta/MPERF_delta/measurement_interval

becomes

    Bzy_MHz = base_mhz/APERF_delta/MPERF_delta

on systems which support MSR_NHM_PLATFORM_INFO.

base_mhz is calculated directly from the base_ratio
reported in MSR_NHM_PLATFORM_INFO * bclk,
and bclk is discovered via MSR or cpuid.

This reduces the dependency of Bzy_MHz calculation on the TSC.
Previously, there were 4 TSC readings required in each caculation,
the raw TSC delta combined with the measurement_interval.
This also removes the "tsc_tweak" correction factor used when
TSC runs on a different base clock from the CPU's bclk.

After this change, tsc_tweak is used only for %Busy.

The end-result should be a Bzy_MHz result slightly less prone to jitter.

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