mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
tools/power/turbostat: Abstract extended cstate MSRs support
Abstract the support for MSR_PKG_WEIGHTED_CORE_C0_RES, MSR_PKG_ANY_CORE_C0_RES, MSR_PKG_ANY_GFXE_C0_RES and MSR_PKG_BOTH_CORE_GFXE_C0_RES. Delete has_skl_msrs() CPU model check. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Reviewed-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
80d132cb45
commit
58ddb691d8
|
|
@ -286,6 +286,7 @@ struct platform_features {
|
|||
bool has_msr_c6_demotion_policy_config; /* MSR_CC6_DEMOTION_POLICY_CONFIG/MSR_MC6_DEMOTION_POLICY_CONFIG */
|
||||
bool has_msr_atom_pkg_c6_residency; /* MSR_ATOM_PKG_C6_RESIDENCY */
|
||||
bool has_msr_knl_core_c6_residency; /* MSR_KNL_CORE_C6_RESIDENCY */
|
||||
bool has_ext_cst_msrs; /* MSR_PKG_WEIGHTED_CORE_C0_RES/MSR_PKG_ANY_CORE_C0_RES/MSR_PKG_ANY_GFXE_C0_RES/MSR_PKG_BOTH_CORE_GFXE_C0_RES */
|
||||
int trl_msrs; /* MSR_TURBO_RATIO_LIMIT/LIMIT1/LIMIT2/SECONDARY, Atom TRL MSRs */
|
||||
int plr_msrs; /* MSR_CORE/GFX/RING_PERF_LIMIT_REASONS */
|
||||
int rapl_msrs; /* RAPL PKG/DRAM/CORE/GFX MSRs, AMD RAPL MSRs */
|
||||
|
|
@ -586,6 +587,7 @@ static const struct platform_features skl_features = {
|
|||
.supported_cstates = CC1 | CC3 | CC6 | CC7 | PC2 | PC3 | PC6 | PC7 | PC8 | PC9 | PC10,
|
||||
.cst_limit = CST_LIMIT_HSW,
|
||||
.has_irtl_msrs = 1,
|
||||
.has_ext_cst_msrs = 1,
|
||||
.trl_msrs = TRL_BASE,
|
||||
.tcc_offset_bits = 6,
|
||||
.rapl_msrs = RAPL_PKG_ALL | RAPL_CORE_ALL | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_GFX,
|
||||
|
|
@ -601,6 +603,7 @@ static const struct platform_features cnl_features = {
|
|||
.supported_cstates = CC1 | CC6 | CC7 | PC2 | PC3 | PC6 | PC7 | PC8 | PC9 | PC10,
|
||||
.cst_limit = CST_LIMIT_HSW,
|
||||
.has_irtl_msrs = 1,
|
||||
.has_ext_cst_msrs = 1,
|
||||
.trl_msrs = TRL_BASE,
|
||||
.tcc_offset_bits = 6,
|
||||
.rapl_msrs = RAPL_PKG_ALL | RAPL_CORE_ALL | RAPL_DRAM | RAPL_DRAM_PERF_STATUS | RAPL_GFX,
|
||||
|
|
@ -5104,30 +5107,6 @@ int print_rapl(struct thread_data *t, struct core_data *c, struct pkg_data *p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* SKL adds support for additional MSRS:
|
||||
*
|
||||
* MSR_PKG_WEIGHTED_CORE_C0_RES 0x00000658
|
||||
* MSR_PKG_ANY_CORE_C0_RES 0x00000659
|
||||
* MSR_PKG_ANY_GFXE_C0_RES 0x0000065A
|
||||
* MSR_PKG_BOTH_CORE_GFXE_C0_RES 0x0000065B
|
||||
*/
|
||||
int has_skl_msrs(unsigned int family, unsigned int model)
|
||||
{
|
||||
if (!genuine_intel)
|
||||
return 0;
|
||||
|
||||
if (family != 6)
|
||||
return 0;
|
||||
|
||||
switch (model) {
|
||||
case INTEL_FAM6_SKYLAKE_L: /* SKL */
|
||||
case INTEL_FAM6_CANNONLAKE_L: /* CNL */
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int is_knl(unsigned int family, unsigned int model)
|
||||
{
|
||||
if (!genuine_intel)
|
||||
|
|
@ -5665,7 +5644,7 @@ void process_cpuid()
|
|||
if (platform->has_msr_module_c6_res_ms)
|
||||
BIC_PRESENT(BIC_Mod_c6);
|
||||
|
||||
if (has_skl_msrs(family, model)) {
|
||||
if (platform->has_ext_cst_msrs) {
|
||||
BIC_PRESENT(BIC_Totl_c0);
|
||||
BIC_PRESENT(BIC_Any_c0);
|
||||
BIC_PRESENT(BIC_GFX_c0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user