Message ID | 20211026083242.27472-1-rui.zhang@intel.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | cpufreq: intel_pstate: Fix cpu->pstate.turbo_freq initialization | expand |
On Tue, Oct 26, 2021 at 10:17 AM Zhang Rui <rui.zhang@intel.com> wrote: > > Fix a problem in active mode that cpu->pstate.turbo_freq is initialized > only if HWP-to-frequency scaling factor is refined. > > In passive mode, this problem is not exposed, because > cpu->pstate.turbo_freq is set again, later in > intel_cpufreq_cpu_init()->intel_pstate_get_hwp_cap(). > > Fixes: eb3693f0521e ("cpufreq: intel_pstate: hybrid: CPU-specific scaling factor") > Signed-off-by: Zhang Rui <rui.zhang@intel.com> > --- > drivers/cpufreq/intel_pstate.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c > index 8c176b7dae41..fc7a429f22d3 100644 > --- a/drivers/cpufreq/intel_pstate.c > +++ b/drivers/cpufreq/intel_pstate.c > @@ -537,7 +537,8 @@ static void intel_pstate_hybrid_hwp_adjust(struct cpudata *cpu) > * scaling factor is too high, so recompute it to make the HWP_CAP > * highest performance correspond to the maximum turbo frequency. > */ > - if (turbo_freq < cpu->pstate.turbo_pstate * scaling) { > + cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * scaling; > + if (turbo_freq < cpu->pstate.turbo_freq) { > cpu->pstate.turbo_freq = turbo_freq; > scaling = DIV_ROUND_UP(turbo_freq, cpu->pstate.turbo_pstate); > cpu->pstate.scaling = scaling; > -- Applied as 5.16 material, thanks!
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index 8c176b7dae41..fc7a429f22d3 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c @@ -537,7 +537,8 @@ static void intel_pstate_hybrid_hwp_adjust(struct cpudata *cpu) * scaling factor is too high, so recompute it to make the HWP_CAP * highest performance correspond to the maximum turbo frequency. */ - if (turbo_freq < cpu->pstate.turbo_pstate * scaling) { + cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * scaling; + if (turbo_freq < cpu->pstate.turbo_freq) { cpu->pstate.turbo_freq = turbo_freq; scaling = DIV_ROUND_UP(turbo_freq, cpu->pstate.turbo_pstate); cpu->pstate.scaling = scaling;
Fix a problem in active mode that cpu->pstate.turbo_freq is initialized only if HWP-to-frequency scaling factor is refined. In passive mode, this problem is not exposed, because cpu->pstate.turbo_freq is set again, later in intel_cpufreq_cpu_init()->intel_pstate_get_hwp_cap(). Fixes: eb3693f0521e ("cpufreq: intel_pstate: hybrid: CPU-specific scaling factor") Signed-off-by: Zhang Rui <rui.zhang@intel.com> --- drivers/cpufreq/intel_pstate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)