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

Badal Nilawar badal.nilawar at intel.com
Fri Jun 14 17:35:20 UTC 2024


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);
+	/*
+	 * 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);
 }
 
 /**
-- 
2.34.1



More information about the igt-dev mailing list