[PATCH i-g-t v2] tests/intel/xe_gt_freq: Resolve freq_low_max test

Belgaumkar, Vinay vinay.belgaumkar at intel.com
Thu Jun 20 18:12:16 UTC 2024


On 6/14/2024 10:35 AM, Badal Nilawar wrote:
> In GUCPC flow when max freq is less than min freq and min freq is greater
> than rpe then cur will be set to min.
>
> By nature rpe is variable as pcode changes it as per its calculations.
> So for above scenario when rpe is greater than min then GUCPC will set cur
> to rpe.
>
> To validate GUCPC behaving as expected it is enough to check cur freq.
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1045
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1829
> Fixes: 1a1e668e774e ("tests/intel/xe_gt_freq: Fix freq_low_max test")
> Fixes: adcc68266b8e ("tests/intel/xe_gt_freq: Check for RPe freq updates")
> Cc: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar at intel.com>
> ---
>   tests/intel/xe_gt_freq.c | 13 ++++++++++---
>   1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/tests/intel/xe_gt_freq.c b/tests/intel/xe_gt_freq.c
> index d2e4d1a09..664ea3f79 100644
> --- a/tests/intel/xe_gt_freq.c
> +++ b/tests/intel/xe_gt_freq.c
> @@ -264,6 +264,7 @@ static void test_freq_low_max(int fd, int gt_id)
>   {
>   	uint32_t rpn = get_freq(fd, gt_id, "rpn");
>   	uint32_t rpe = get_freq(fd, gt_id, "rpe");
> +	uint32_t min;
>   
>   	/*
>   	 *  When max request < min request, max is ignored and min works like
> @@ -276,10 +277,16 @@ static void test_freq_low_max(int fd, int gt_id)
>   	/* Refresh value of rpe, pcode could have adjusted it */
>   	rpe = get_freq(fd, gt_id, "rpe");
>   
> -	igt_assert(get_freq(fd, gt_id, "cur") == rpe);
> +	min = get_freq(fd, gt_id, "min");
>   
> -	if (!xe_is_gt_in_c6(fd, gt_id))
> -		igt_assert(get_freq(fd, gt_id, "act") == rpe);

Another thing we can do to make this more precise is to get the latest 
rpe here instead of before the xe_gt_is_in_c6() check.

Thanks,

Vinay.

> +	/*
> +	 * Refreshed value of rpe can be lesser or greater than min (previous rpe).
> +	 * So when rpe < min then cur = min else cur = rpe
> +	 */
> +	if (rpe < min)
> +		igt_assert(get_freq(fd, gt_id, "cur") == min);
> +	else
> +		igt_assert(get_freq(fd, gt_id, "cur") == rpe);
>   }
>   
>   /**


More information about the igt-dev mailing list