Re: [PATCH 2/2] cpufreq/amd-pstate-ut: Don't fail boost test case if CPB isn't supported

From: Gautham R . Shenoy
Date: Wed Jul 03 2024 - 04:58:54 EST


Hello Mario,

Mario Limonciello <mario.limonciello@xxxxxxx> writes:

> cpudata->boost_supported will only be configured when a CPU actually
> supports core performance boost. Add an extra guard into the check
> to ensure it only runs when CPB is present.
>
> Fixes: 14eb1c96e3a3 ("cpufreq: amd-pstate: Add test module for amd-pstate driver")
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
> drivers/cpufreq/amd-pstate-ut.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/cpufreq/amd-pstate-ut.c b/drivers/cpufreq/amd-pstate-ut.c
> index b7318669485e..b011c729fcba 100644
> --- a/drivers/cpufreq/amd-pstate-ut.c
> +++ b/drivers/cpufreq/amd-pstate-ut.c
> @@ -232,21 +232,21 @@ static void amd_pstate_ut_check_freq(u32 index)
> goto skip_test;
> }
>
> - if (cpudata->boost_supported) {
> - if ((policy->max == cpudata->max_freq) ||
> - (policy->max == nominal_freq_khz))
> - amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
> - else {
> + if (cpu_feature_enabled(X86_FEATURE_CPB)) {
> + if (!cpudata->boost_supported) {
> + amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
> + pr_err("%s cpu%d must support boost!\n", __func__, cpu);
> + goto skip_test;
> + }
> + if ((policy->max != cpudata->max_freq) &&
> + (policy->max != nominal_freq_khz)) {

Writing a different value into
/sys/devices/system/cpu/cpuX/cpufreq/scaling_max_freq, updates the
policy->max for cpuX.

So if a user runs this test case after someone has changed the
scaling_max_freq, the test case will fail. While this is not due to your
patch, I wonder if this is valid test-case.

> amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
> pr_err("%s cpu%d policy_max=%d should be equal cpu_max=%d or cpu_nominal=%d !\n",
> __func__, cpu, policy->max, cpudata->max_freq,
> nominal_freq_khz);
> goto skip_test;
> }
> - } else {
> - amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
> - pr_err("%s cpu%d must support boost!\n", __func__, cpu);
> - goto skip_test;
> + amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
> }
> cpufreq_cpu_put(policy);
> }
> --
> 2.43.0
--
Thanks and Regards
gautham.