summaryrefslogtreecommitdiff
path: root/lib/lcm.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2015-01-23 00:12:33 -0500
committerLen Brown <len.brown@intel.com>2015-02-09 18:28:08 -0500
commitd7899447535929b3672442b7b42a09ae4e48fa91 (patch)
tree884d0376a050c9118a6cd4ce33693061727e7791 /lib/lcm.c
parent3a9a941d0b9361eac81fb763a89fb465f70b1c28 (diff)
tools/power turbostat: relax dependency on invariant TSC
Turbostat can be useful on systems that do not support invariant TSC, so allow it to run on those systgems. All arithmetic in turbostat using the TSC value is per-processsor, so it does not depend on the TSC values being in sync acrosss processors. Turbostat uses gettimeofday() for the measurement interval rather than using the TSC directly, so that key metric is also immune from variable TSC. Turbostat prints a TSC sanity check column: TSC_MHz = TSC_delta/interval If this column is constant and is close to the processor base frequency, then the TSC is behaving properly. The other key turbostat columns are calculated this way: Avg_Mhz = APERF_delta/interval %Busy = MPERF_delta/TSC_delta Bzy_MHz = TSC_delta/APERF_delta/MPERF_delta/interval Tested on Core2 and Core2-Xeon, and so this patch includes a few other changes to remove the assumption that target systems are Nehalem and newer. Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'lib/lcm.c')
0 files changed, 0 insertions, 0 deletions