Commit e6f9bb3c authored by Len Brown's avatar Len Brown

turbostat: run on HSX

Haswell Xeon has slightly different RAPL support than client HSW,
which prevented the previous version of turbostat from running on HSX.
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 7ade7f48
...@@ -81,13 +81,31 @@ double rapl_power_units, rapl_energy_units, rapl_time_units; ...@@ -81,13 +81,31 @@ double rapl_power_units, rapl_energy_units, rapl_time_units;
double rapl_joule_counter_range; double rapl_joule_counter_range;
#define RAPL_PKG (1 << 0) #define RAPL_PKG (1 << 0)
#define RAPL_CORES (1 << 1) /* 0x610 MSR_PKG_POWER_LIMIT */
#define RAPL_GFX (1 << 2) /* 0x611 MSR_PKG_ENERGY_STATUS */
#define RAPL_PKG_PERF_STATUS (1 << 1)
/* 0x613 MSR_PKG_PERF_STATUS */
#define RAPL_PKG_POWER_INFO (1 << 2)
/* 0x614 MSR_PKG_POWER_INFO */
#define RAPL_DRAM (1 << 3) #define RAPL_DRAM (1 << 3)
#define RAPL_PKG_PERF_STATUS (1 << 4) /* 0x618 MSR_DRAM_POWER_LIMIT */
#define RAPL_DRAM_PERF_STATUS (1 << 5) /* 0x619 MSR_DRAM_ENERGY_STATUS */
#define RAPL_PKG_POWER_INFO (1 << 6) /* 0x61c MSR_DRAM_POWER_INFO */
#define RAPL_CORE_POLICY (1 << 7) #define RAPL_DRAM_PERF_STATUS (1 << 4)
/* 0x61b MSR_DRAM_PERF_STATUS */
#define RAPL_CORES (1 << 5)
/* 0x638 MSR_PP0_POWER_LIMIT */
/* 0x639 MSR_PP0_ENERGY_STATUS */
#define RAPL_CORE_POLICY (1 << 6)
/* 0x63a MSR_PP0_POLICY */
#define RAPL_GFX (1 << 7)
/* 0x640 MSR_PP1_POWER_LIMIT */
/* 0x641 MSR_PP1_ENERGY_STATUS */
/* 0x642 MSR_PP1_POLICY */
#define TJMAX_DEFAULT 100 #define TJMAX_DEFAULT 100
#define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b))
...@@ -1449,7 +1467,7 @@ int has_nehalem_turbo_ratio_limit(unsigned int family, unsigned int model) ...@@ -1449,7 +1467,7 @@ int has_nehalem_turbo_ratio_limit(unsigned int family, unsigned int model)
case 0x3A: /* IVB */ case 0x3A: /* IVB */
case 0x3E: /* IVB Xeon */ case 0x3E: /* IVB Xeon */
case 0x3C: /* HSW */ case 0x3C: /* HSW */
case 0x3F: /* HSW */ case 0x3F: /* HSX */
case 0x45: /* HSW */ case 0x45: /* HSW */
case 0x46: /* HSW */ case 0x46: /* HSW */
case 0x37: /* BYT */ case 0x37: /* BYT */
...@@ -1565,11 +1583,13 @@ void rapl_probe(unsigned int family, unsigned int model) ...@@ -1565,11 +1583,13 @@ void rapl_probe(unsigned int family, unsigned int model)
case 0x2A: case 0x2A:
case 0x3A: case 0x3A:
case 0x3C: /* HSW */ case 0x3C: /* HSW */
case 0x3F: /* HSW */
case 0x45: /* HSW */ case 0x45: /* HSW */
case 0x46: /* HSW */ case 0x46: /* HSW */
do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_GFX | RAPL_PKG_POWER_INFO; do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_GFX | RAPL_PKG_POWER_INFO;
break; break;
case 0x3F: /* HSX */
do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO;
break;
case 0x2D: case 0x2D:
case 0x3E: case 0x3E:
do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_DRAM | RAPL_PKG_PERF_STATUS | RAPL_DRAM_PERF_STATUS | RAPL_PKG_POWER_INFO; do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_DRAM | RAPL_PKG_PERF_STATUS | RAPL_DRAM_PERF_STATUS | RAPL_PKG_POWER_INFO;
...@@ -2366,7 +2386,7 @@ int main(int argc, char **argv) ...@@ -2366,7 +2386,7 @@ int main(int argc, char **argv)
cmdline(argc, argv); cmdline(argc, argv);
if (verbose) if (verbose)
fprintf(stderr, "turbostat v3.5 April 26, 2013" fprintf(stderr, "turbostat v3.6 Dec 2, 2013"
" - Len Brown <lenb@kernel.org>\n"); " - Len Brown <lenb@kernel.org>\n");
turbostat_init(); turbostat_init();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment