Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Thu, 14 Mar 2024 11:18:59 +0530 | From | "Gautham R. Shenoy" <> | Subject | Re: [PATCH v7 1/6] cpufreq:amd-pstate: fix the nominal freq value set |
| |
Hello Perry,
On Wed, Mar 13, 2024 at 05:59:13PM +0800, Perry Yuan wrote: > Address an untested error where the nominal_freq was returned in KHz > instead of the correct MHz units, this oversight led to a wrong > nominal_freq set and resued, it will cause the max frequency of core to > be initialized with a wrong frequency value.
As I had mentioned in my review comment to v6 [1], cpudata->max_freq, cpudata->min_freq, cpudata->lowest_non_linear_freq are all in khz. With this patch, cpudata->nominal_freq will be in mhz.
As Dhananjay confirmed [2], this patch breaks the reporting in /sys/devices/system/cpu/cpufreq/policyX/*_freq as some of them will be reported in mhz while some others in khz which breaks the expectation that all these sysfs values should be reported in khz.
[cpufreq]# grep . *freq amd_pstate_lowest_nonlinear_freq:1804000 <----- in khz amd_pstate_max_freq:3514000 <----- in khz cpuinfo_max_freq:2151 <----- in mhz cpuinfo_min_freq:400000 <----- in khz scaling_cur_freq:2151 <----- in mhz scaling_max_freq:2151 <----- in mhz scaling_min_freq:2151 <----- in mhz [cpufreq]# pwd /sys/devices/system/cpu/cpu0/cpufreq
What am I missing ?
[1] https://lore.kernel.org/lkml/ZcRvoYZKdUEjBUHp@BLR-5CG11610CF.amd.com/) [2] https://lore.kernel.org/lkml/1aecf2fc-2ea4-46ec-aaf2-0dbbb11b5f8b@amd.com/
> > Cc: stable@vger.kernel.org > Fixes: ec437d71db7 ("cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors") > Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> > Signed-off-by: Perry Yuan <perry.yuan@amd.com>
-- Thanks and Regards gautham.
> --- > drivers/cpufreq/amd-pstate.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c > index 2015c9fcc3c9..3faa895b77b7 100644 > --- a/drivers/cpufreq/amd-pstate.c > +++ b/drivers/cpufreq/amd-pstate.c > @@ -647,8 +647,7 @@ static int amd_get_nominal_freq(struct amd_cpudata *cpudata) > if (ret) > return ret; > > - /* Switch to khz */ > - return cppc_perf.nominal_freq * 1000; > + return cppc_perf.nominal_freq; > } > > static int amd_get_lowest_nonlinear_freq(struct amd_cpudata *cpudata) > -- > 2.34.1 >
| ![\](/images/icornerr.gif) |