[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