Skip to content

Commit e6f9bb3

Browse files
committed
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: Len Brown <len.brown@intel.com>
1 parent 7ade7f4 commit e6f9bb3

File tree

1 file changed

+31
-11
lines changed

1 file changed

+31
-11
lines changed

tools/power/x86/turbostat/turbostat.c

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,32 @@ unsigned int tcc_activation_temp_override;
8080
double rapl_power_units, rapl_energy_units, rapl_time_units;
8181
double rapl_joule_counter_range;
8282

83-
#define RAPL_PKG (1 << 0)
84-
#define RAPL_CORES (1 << 1)
85-
#define RAPL_GFX (1 << 2)
86-
#define RAPL_DRAM (1 << 3)
87-
#define RAPL_PKG_PERF_STATUS (1 << 4)
88-
#define RAPL_DRAM_PERF_STATUS (1 << 5)
89-
#define RAPL_PKG_POWER_INFO (1 << 6)
90-
#define RAPL_CORE_POLICY (1 << 7)
83+
#define RAPL_PKG (1 << 0)
84+
/* 0x610 MSR_PKG_POWER_LIMIT */
85+
/* 0x611 MSR_PKG_ENERGY_STATUS */
86+
#define RAPL_PKG_PERF_STATUS (1 << 1)
87+
/* 0x613 MSR_PKG_PERF_STATUS */
88+
#define RAPL_PKG_POWER_INFO (1 << 2)
89+
/* 0x614 MSR_PKG_POWER_INFO */
90+
91+
#define RAPL_DRAM (1 << 3)
92+
/* 0x618 MSR_DRAM_POWER_LIMIT */
93+
/* 0x619 MSR_DRAM_ENERGY_STATUS */
94+
/* 0x61c MSR_DRAM_POWER_INFO */
95+
#define RAPL_DRAM_PERF_STATUS (1 << 4)
96+
/* 0x61b MSR_DRAM_PERF_STATUS */
97+
98+
#define RAPL_CORES (1 << 5)
99+
/* 0x638 MSR_PP0_POWER_LIMIT */
100+
/* 0x639 MSR_PP0_ENERGY_STATUS */
101+
#define RAPL_CORE_POLICY (1 << 6)
102+
/* 0x63a MSR_PP0_POLICY */
103+
104+
105+
#define RAPL_GFX (1 << 7)
106+
/* 0x640 MSR_PP1_POWER_LIMIT */
107+
/* 0x641 MSR_PP1_ENERGY_STATUS */
108+
/* 0x642 MSR_PP1_POLICY */
91109
#define TJMAX_DEFAULT 100
92110

93111
#define MAX(a, b) ((a) > (b) ? (a) : (b))
@@ -1449,7 +1467,7 @@ int has_nehalem_turbo_ratio_limit(unsigned int family, unsigned int model)
14491467
case 0x3A: /* IVB */
14501468
case 0x3E: /* IVB Xeon */
14511469
case 0x3C: /* HSW */
1452-
case 0x3F: /* HSW */
1470+
case 0x3F: /* HSX */
14531471
case 0x45: /* HSW */
14541472
case 0x46: /* HSW */
14551473
case 0x37: /* BYT */
@@ -1565,11 +1583,13 @@ void rapl_probe(unsigned int family, unsigned int model)
15651583
case 0x2A:
15661584
case 0x3A:
15671585
case 0x3C: /* HSW */
1568-
case 0x3F: /* HSW */
15691586
case 0x45: /* HSW */
15701587
case 0x46: /* HSW */
15711588
do_rapl = RAPL_PKG | RAPL_CORES | RAPL_CORE_POLICY | RAPL_GFX | RAPL_PKG_POWER_INFO;
15721589
break;
1590+
case 0x3F: /* HSX */
1591+
do_rapl = RAPL_PKG | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_PKG_PERF_STATUS | RAPL_PKG_POWER_INFO;
1592+
break;
15731593
case 0x2D:
15741594
case 0x3E:
15751595
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)
23662386
cmdline(argc, argv);
23672387

23682388
if (verbose)
2369-
fprintf(stderr, "turbostat v3.5 April 26, 2013"
2389+
fprintf(stderr, "turbostat v3.6 Dec 2, 2013"
23702390
" - Len Brown <lenb@kernel.org>\n");
23712391

23722392
turbostat_init();

0 commit comments

Comments
 (0)