Skip to contentSkip to conversation

cpufreq: intel_pstate: Fix active mode offline/online EPP handling

PATCH New Rafael J. Wysocki 1 participant 1 message Nov 17, 2021

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cpufreq: intel_pstate: Fix active mode offline/online EPP handling

From: Rafael J. Wysocki <[email protected]>

After commit 4adcf2e5829f ("cpufreq: intel_pstate: Add ->offline and ->online callbacks") the EPP value set by the "performance" scaling algorithm in the active mode is not restored after an offline/online cycle which replaces it with the saved EPP value coming from user space.

Address this issue by forcing intel_pstate_hwp_set() to set a new EPP value when it runs first time after online.

Fixes 4adcf2e5829f ("cpufreq: intel_pstate: Add ->offline and ->online callbacks")
Cc 5.9+ <[email protected]> # 5.9+
---
 drivers/cpufreq/intel_pstate.c |    6 ++++++
 1 file changed, 6 insertions(+)
drivers/cpufreq/intel_pstate.c +6 -0
Index: linux-pm/drivers/cpufreq/intel_pstate.c
===================================================================
@@ -1006,6 +1006,12 @@ static void intel_pstate_hwp_offline(str
 		 */
 		value &= ~GENMASK_ULL(31, 24);
 		value |= HWP_ENERGY_PERF_PREFERENCE(cpu->epp_cached);
+		/*
+		 * However, make sure that EPP will be set to "performance" when
+		 * the CPU is brought back online again and the "performance"
+		 * scaling algorithm is still in effect.
+		 */
+		cpu->epp_policy = CPUFREQ_POLICY_UNKNOWN;
 	}
 
 	/*