[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <929aec0d-690b-4277-90b0-d0b4adb437d3@amd.com>
Date: Mon, 27 May 2024 09:40:21 -0500
From: Mario Limonciello <mario.limonciello@....com>
To: Dhananjay Ugwekar <Dhananjay.Ugwekar@....com>, rafael@...nel.org,
ray.huang@....com, viresh.kumar@...aro.org, gautham.shenoy@....com
Cc: ananth.narayan@....com, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org, Perry.Yuan@....com
Subject: Re: [PATCH] cpufreq: amd-pstate: Fix the inconsistency in max
frequency units
On 5/27/2024 00:11, Dhananjay Ugwekar wrote:
> The nominal frequency in cpudata is maintained in MHz whereas all other
> frequencies are in KHz. This means we have to convert nominal frequency
> value to KHz before we do any interaction with other frequency values.
>
> In amd_pstate_set_boost(), this conversion from MHz to KHz is missed,
> fix that.
>
> Tested on a AMD Zen4 EPYC server
>
> Before:
> $ cat /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq | uniq
> 2151
> $ cat /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_min_freq | uniq
> 400000
> $ cat /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq | uniq
> 2151
> 409422
>
> After:
> $ cat /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq | uniq
> 2151000
> $ cat /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_min_freq | uniq
> 400000
> $ cat /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq | uniq
> 2151000
> 1799527
>
Cc: stable@...r.kernel.org
> Fixes: ec437d71db77 ("cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors")
> Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@....com>
Acked-by: Mario Limonciello <mario.limonciello@....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 1b7e82a0ad2e..cde3b91b4422 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -669,7 +669,7 @@ static int amd_pstate_set_boost(struct cpufreq_policy *policy, int state)
> if (state)
> policy->cpuinfo.max_freq = cpudata->max_freq;
> else
> - policy->cpuinfo.max_freq = cpudata->nominal_freq;
> + policy->cpuinfo.max_freq = cpudata->nominal_freq * 1000;
>
> policy->max = policy->cpuinfo.max_freq;
>
Powered by blists - more mailing lists