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

Nilawar, Badal badal.nilawar at intel.com
Thu Jun 20 12:07:19 UTC 2024



On 18-06-2024 17:18, Kamil Konieczny wrote:
> Hi Badal,
> On 2024-06-14 at 23:05:20 +0530, 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))
> 
> Why did you dropped this check? Please write about this
> in description,
Sure.
Removed this check as there is possible race. We check gt idle status 
first and then act freq. By the time of checking act frequency GT may 
get transitioned to C6.
I will float separate patch for this.

> 
> Regards,
> Kamil
> 
>> -		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