Fix the wrong lowest perf value reading which is used for new
des_perf calculation by governor requested, the incorrect min_perf will
get incorrect des_perf to be set , that will cause the system frequency
changing unexpectedly.
Reviewed-by: Huang Rui <ray.huang@amd.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
Signed-off-by: Su Jinzhou <jinzhou.su@amd.com>
---
drivers/cpufreq/amd-pstate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 5cdef6638681..183cdd4ba00e 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -307,7 +307,7 @@ static int amd_pstate_target(struct cpufreq_policy *policy,
return -ENODEV;
cap_perf = READ_ONCE(cpudata->highest_perf);
- min_perf = READ_ONCE(cpudata->lowest_nonlinear_perf);
+ min_perf = READ_ONCE(cpudata->lowest_perf);
max_perf = cap_perf;
freqs.old = policy->cur;
--
2.34.1
Hi Perry, Perry Yuan <Perry.Yuan@amd.com> writes: > Fix the wrong lowest perf value reading which is used for new > des_perf calculation by governor requested, the incorrect min_perf will > get incorrect des_perf to be set , that will cause the system frequency > changing unexpectedly. > > Reviewed-by: Huang Rui <ray.huang@amd.com> > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> > Signed-off-by: Perry Yuan <Perry.Yuan@amd.com> > Signed-off-by: Su Jinzhou <jinzhou.su@amd.com> > --- > drivers/cpufreq/amd-pstate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c > index 5cdef6638681..183cdd4ba00e 100644 > --- a/drivers/cpufreq/amd-pstate.c > +++ b/drivers/cpufreq/amd-pstate.c > @@ -307,7 +307,7 @@ static int amd_pstate_target(struct cpufreq_policy *policy, > return -ENODEV; > > cap_perf = READ_ONCE(cpudata->highest_perf); > - min_perf = READ_ONCE(cpudata->lowest_nonlinear_perf); > + min_perf = READ_ONCE(cpudata->lowest_perf); > max_perf = cap_perf; > > freqs.old = policy->cur; This looks to be a pretty big change (lowest nonlinear vs lowest). Does the patch need to be backported to older kernels?
[AMD Official Use Only - General] Hi Agrawal, > -----Original Message----- > From: Punit Agrawal <punit.agrawal@bytedance.com> > Sent: Monday, August 15, 2022 11:05 PM > To: Yuan, Perry <Perry.Yuan@amd.com> > Cc: rafael.j.wysocki@intel.com; Huang, Ray <Ray.Huang@amd.com>; > viresh.kumar@linaro.org; Sharma, Deepak <Deepak.Sharma@amd.com>; > Limonciello, Mario <Mario.Limonciello@amd.com>; Fontenot, Nathan > <Nathan.Fontenot@amd.com>; Deucher, Alexander > <Alexander.Deucher@amd.com>; Su, Jinzhou (Joe) <Jinzhou.Su@amd.com>; > Huang, Shimmer <Shimmer.Huang@amd.com>; Du, Xiaojian > <Xiaojian.Du@amd.com>; Meng, Li (Jassmine) <Li.Meng@amd.com>; linux- > pm@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v5 4/7] cpufreq: amd_pstate: fix wrong lowest perf fetch > > [CAUTION: External Email] > > Hi Perry, > > Perry Yuan <Perry.Yuan@amd.com> writes: > > > Fix the wrong lowest perf value reading which is used for new des_perf > > calculation by governor requested, the incorrect min_perf will get > > incorrect des_perf to be set , that will cause the system frequency > > changing unexpectedly. > > > > Reviewed-by: Huang Rui <ray.huang@amd.com> > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> > > Signed-off-by: Perry Yuan <Perry.Yuan@amd.com> > > Signed-off-by: Su Jinzhou <jinzhou.su@amd.com> > > --- > > drivers/cpufreq/amd-pstate.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/cpufreq/amd-pstate.c > > b/drivers/cpufreq/amd-pstate.c index 5cdef6638681..183cdd4ba00e 100644 > > --- a/drivers/cpufreq/amd-pstate.c > > +++ b/drivers/cpufreq/amd-pstate.c > > @@ -307,7 +307,7 @@ static int amd_pstate_target(struct cpufreq_policy > *policy, > > return -ENODEV; > > > > cap_perf = READ_ONCE(cpudata->highest_perf); > > - min_perf = READ_ONCE(cpudata->lowest_nonlinear_perf); > > + min_perf = READ_ONCE(cpudata->lowest_perf); > > max_perf = cap_perf; > > > > freqs.old = policy->cur; > > This looks to be a pretty big change (lowest nonlinear vs lowest). Does the patch > need to be backported to older kernels? The patch fixes the min perf initial value, the correct min perf is lowest_perf which is captured through MSR_AMD_CPPC_CAP1 register or the cppc_get_perf_caps(). Yes, the patch will need to be backported to other kernel branch as issue fix. Sorry to response late. Perry.
"Yuan, Perry" <Perry.Yuan@amd.com> writes: [...] >> Perry Yuan <Perry.Yuan@amd.com> writes: >> >> > Fix the wrong lowest perf value reading which is used for new des_perf >> > calculation by governor requested, the incorrect min_perf will get >> > incorrect des_perf to be set , that will cause the system frequency >> > changing unexpectedly. >> > >> > Reviewed-by: Huang Rui <ray.huang@amd.com> >> > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> >> > Signed-off-by: Perry Yuan <Perry.Yuan@amd.com> >> > Signed-off-by: Su Jinzhou <jinzhou.su@amd.com> >> > --- >> > drivers/cpufreq/amd-pstate.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/drivers/cpufreq/amd-pstate.c >> > b/drivers/cpufreq/amd-pstate.c index 5cdef6638681..183cdd4ba00e 100644 >> > --- a/drivers/cpufreq/amd-pstate.c >> > +++ b/drivers/cpufreq/amd-pstate.c >> > @@ -307,7 +307,7 @@ static int amd_pstate_target(struct cpufreq_policy >> *policy, >> > return -ENODEV; >> > >> > cap_perf = READ_ONCE(cpudata->highest_perf); >> > - min_perf = READ_ONCE(cpudata->lowest_nonlinear_perf); >> > + min_perf = READ_ONCE(cpudata->lowest_perf); >> > max_perf = cap_perf; >> > >> > freqs.old = policy->cur; >> >> This looks to be a pretty big change (lowest nonlinear vs lowest). Does the patch >> need to be backported to older kernels? > > The patch fixes the min perf initial value, the correct min perf is lowest_perf which is captured through MSR_AMD_CPPC_CAP1 register or the cppc_get_perf_caps(). > Yes, the patch will need to be backported to other kernel branch as issue fix. Great, thanks for confirming! [...]
© 2016 - 2026 Red Hat, Inc.