Re: [PATCH 07/12] cpufreq: amd_pstate: map desired perf into pstate scope for powersave governor

From: Nathan Fontenot
Date: Thu Jul 07 2022 - 15:57:20 EST


On 7/7/22 12:00, Perry Yuan wrote:
> The patch will fix the invalid desired perf value for powersave
> governor. This issue is found when testing on one AMD EPYC system, the
> actual des_perf is smaller than the min_perf value, that is invalid
> value. because the min_perf is the lowest_perf system can support in
> idle state.
>
> Signed-off-by: Perry Yuan <Perry.Yuan@xxxxxxx>
> ---
> drivers/cpufreq/amd-pstate.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index 7c51f4125263..154eed849f38 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -317,6 +317,7 @@ static int amd_pstate_target(struct cpufreq_policy *policy,
> des_perf = DIV_ROUND_CLOSEST(target_freq * cap_perf,
> cpudata->max_freq);
>
> + des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf);
> cpufreq_freq_transition_begin(policy, &freqs);
> amd_pstate_update(cpudata, min_perf, des_perf,
> max_perf, false);

The clamping of the desired perf value should be moved to amd_pstate_update(). The
only other caller of amd_pstate_update() is amd_pstate_adjust_perf() which already
clamps the desired perf value before making the call.

-Nathan