1. 13 3月, 2016 11 次提交
  2. 17 2月, 2016 4 次提交
  3. 14 11月, 2015 1 次提交
  4. 22 10月, 2015 1 次提交
  5. 20 10月, 2015 1 次提交
    • L
      tools/power turbostat: simplify Bzy_MHz calculation · 21ed5574
      Len Brown 提交于
          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: NLen Brown <len.brown@intel.com>
      21ed5574
  6. 26 9月, 2015 4 次提交
    • L
      tools/power turbosat: update version number · af71b980
      Len Brown 提交于
      Signed-off-by: NLen Brown <len.brown@intel.com>
      af71b980
    • L
      tools/power turbostat: SKL: Adjust for TSC difference from base frequency · a2b7b749
      Len Brown 提交于
      On a Skylake with 1500MHz base frequency,
      the TSC runs at 1512MHz.
      
      This is because the TSC is no longer in the n*100 MHz BCLK domain,
      but is now in the m*24MHz crystal clock domain. (24 MHz * 63 = 1512 MHz)
      
      This adds error to several calculations in turbostat,
      unless the TSC sample sizes are adjusted for this difference.
      
      Note that calculations in the time domain are immune
      from this issue, as the timing sub-system has already
      calibrated the TSC against a known wall clock.
      
      AVG_MHz = APERF_delta/measurement_interval
      
      	need no adjustment.  APERF_delta is in the BCLK domain,
      	and measurement_interval is in the time domain.
      
      TSC_MHz  =  TSC_delta/measurement_interval
      
      	needs no adjustment -- as we really do want to report
      	the actual measured TSC delta here, and measurement_interval
      	is in the accurate time domain.
      
      %Busy = MPERF_delta/TSC_delta
      
      	needs adjustment to use TSC_BCLK_DOMAIN_delta.
      	TSC_BCLK_DOMAIN_delta = TSC_delta * base_hz / tsc_hz
      
      Bzy_MHz = TSC_delta/APERF_delta/MPERF_delta/measurement_interval
      
      	need adjustment as above.
      
      No other metrics in turbostat need to be adjusted.
      
      Before:
      
           CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz
             -     550   24.84    2216    1512
             0    2191   98.73    2219    1514
             2       0    0.01    2130    1512
             1       9    0.43    2016    1512
             3       2    0.08    2016    1512
      
      After:
      
           CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz
             -     550   25.05    2198    1512
             0    2190   99.62    2199    1512
             2       0    0.01    2152    1512
             1       9    0.46    2000    1512
             3       2    0.10    2000    1512
      
      Note that in this example, the "Before" Bzy_MHz
      was reported as exceeding the 2200 max turbo rate.
      Also, even a pinned spin loop would not be reported
      as over 99% busy.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a2b7b749
    • H
      tools/power turbostat: KNL workaround for %Busy and Avg_MHz · b2b34dfe
      Hubert Chrzaniuk 提交于
      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: NHubert Chrzaniuk <hubert.chrzaniuk@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b2b34dfe
    • L
      tools/power turbostat: IVB Xeon: fix --debug regression · 756357b8
      Len Brown 提交于
      Staring in Linux-4.3-rc1,
      commit 6fb3143b ("tools/power turbostat: dump CONFIG_TDP")
      touches MSR 0x648, which is not supported on IVB-Xeon.
      This results in "turbostat --debug" exiting on those systems:
      
      turbostat: /dev/cpu/2/msr offset 0x648 read failed: Input/output error
      
      Remove IVB-Xeon from the list of machines supporting with that MSR.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      756357b8
  7. 24 7月, 2015 1 次提交
  8. 16 7月, 2015 1 次提交
  9. 18 6月, 2015 2 次提交
  10. 28 5月, 2015 5 次提交
  11. 19 4月, 2015 7 次提交
  12. 14 4月, 2015 2 次提交