tools/power/turbostat: Abstract RAPL divisor support
INTEL_FAM6_ATOM_SILVERMONT model needs a divisor to convert the raw Energy Units value from MSR_RAPL_POWER_UNIT. Abstract the support for RAPL divisor. Delete CPU model check in rapl_probe_intel(). Signed-off-by: Zhang Rui <rui.zhang@intel.com> Reviewed-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
e338831b14
commit
6d35b8c4a6
@ -289,6 +289,7 @@ struct platform_features {
|
||||
int plr_msrs; /* MSR_CORE/GFX/RING_PERF_LIMIT_REASONS */
|
||||
int rapl_msrs; /* RAPL PKG/DRAM/CORE/GFX MSRs, AMD RAPL MSRs */
|
||||
bool has_per_core_rapl; /* Indicates cores energy collection is per-core, not per-package. AMD specific for now */
|
||||
bool has_rapl_divisor; /* Divisor for Energy unit raw value from MSR_RAPL_POWER_UNIT */
|
||||
int tcc_offset_bits; /* TCC Offset bits in MSR_IA32_TEMPERATURE_TARGET */
|
||||
};
|
||||
|
||||
@ -595,6 +596,7 @@ static const struct platform_features slv_features = {
|
||||
.cst_limit = CST_LIMIT_SLV,
|
||||
.trl_msrs = TRL_ATOM,
|
||||
.rapl_msrs = RAPL_PKG | RAPL_CORE,
|
||||
.has_rapl_divisor = 1,
|
||||
};
|
||||
|
||||
static const struct platform_features slvd_features = {
|
||||
@ -4865,7 +4867,7 @@ void rapl_probe_intel(unsigned int model)
|
||||
return;
|
||||
|
||||
rapl_power_units = 1.0 / (1 << (msr & 0xF));
|
||||
if (model == INTEL_FAM6_ATOM_SILVERMONT)
|
||||
if (platform->has_rapl_divisor)
|
||||
rapl_energy_units = 1.0 * (1 << (msr >> 8 & 0x1F)) / 1000000;
|
||||
else
|
||||
rapl_energy_units = 1.0 / (1 << (msr >> 8 & 0x1F));
|
||||
|
Loading…
x
Reference in New Issue
Block a user