Skip to content

Commit c97c057

Browse files
committed
tools/power x86_energy_perf_policy: Enhance HWP enable
On enabling HWP, preserve the reserved bits in MSR_PM_ENABLE. Also, skip writing the MSR_PM_ENABLE if HWP is already enabled. Signed-off-by: Len Brown <len.brown@intel.com>
1 parent b6b42a6 commit c97c057

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,13 +1166,18 @@ int update_hwp_request_pkg(int pkg)
11661166

11671167
int enable_hwp_on_cpu(int cpu)
11681168
{
1169-
unsigned long long msr;
1169+
unsigned long long old_msr, new_msr;
1170+
1171+
get_msr(cpu, MSR_PM_ENABLE, &old_msr);
1172+
1173+
if (old_msr & 1)
1174+
return 0; /* already enabled */
11701175

1171-
get_msr(cpu, MSR_PM_ENABLE, &msr);
1172-
put_msr(cpu, MSR_PM_ENABLE, 1);
1176+
new_msr = old_msr | 1;
1177+
put_msr(cpu, MSR_PM_ENABLE, new_msr);
11731178

11741179
if (verbose)
1175-
printf("cpu%d: MSR_PM_ENABLE old: %d new: %d\n", cpu, (unsigned int) msr, 1);
1180+
printf("cpu%d: MSR_PM_ENABLE old: %llX new: %llX\n", cpu, old_msr, new_msr);
11761181

11771182
return 0;
11781183
}

0 commit comments

Comments
 (0)