]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tools/power x86_energy_perf_policy: Enhance HWP enable
authorLen Brown <len.brown@intel.com>
Fri, 19 Sep 2025 18:07:02 +0000 (14:07 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:34:08 +0000 (15:34 -0500)
[ Upstream commit c97c057d357c4b39b153e9e430bbf8976e05bd4e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c

index c883f211dbcc9b2364a322f6d6cb357a9b352e16..0bda8e3ae7f77aeb20f3b31ca38db89928c9799d 100644 (file)
@@ -1166,13 +1166,18 @@ int update_hwp_request_pkg(int pkg)
 
 int enable_hwp_on_cpu(int cpu)
 {
-       unsigned long long msr;
+       unsigned long long old_msr, new_msr;
+
+       get_msr(cpu, MSR_PM_ENABLE, &old_msr);
+
+       if (old_msr & 1)
+               return 0;       /* already enabled */
 
-       get_msr(cpu, MSR_PM_ENABLE, &msr);
-       put_msr(cpu, MSR_PM_ENABLE, 1);
+       new_msr = old_msr | 1;
+       put_msr(cpu, MSR_PM_ENABLE, new_msr);
 
        if (verbose)
-               printf("cpu%d: MSR_PM_ENABLE old: %d new: %d\n", cpu, (unsigned int) msr, 1);
+               printf("cpu%d: MSR_PM_ENABLE old: %llX new: %llX\n", cpu, old_msr, new_msr);
 
        return 0;
 }