[igt-dev] [PATCH i-g-t] RFC tests/xe: Stress test GT C states

Riana Tauro riana.tauro at intel.com
Mon Jul 31 08:27:59 UTC 2023


Hi Suja

On 7/31/2023 1:00 PM, Sundaresan, Sujaritha wrote:
> 
> On 7/28/2023 11:39 AM, Riana Tauro wrote:
>> stress test GT C states by checking if GT is in C0 when
>> forcewake is acquired and in C6 once released.
>>
>> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
>> ---
>>   tests/xe/xe_pm_residency.c | 27 +++++++++++++++++++++++++++
>>   1 file changed, 27 insertions(+)
>>
>> diff --git a/tests/xe/xe_pm_residency.c b/tests/xe/xe_pm_residency.c
>> index 4936de166..9713e61cd 100644
>> --- a/tests/xe/xe_pm_residency.c
>> +++ b/tests/xe/xe_pm_residency.c
>> @@ -85,6 +85,29 @@ static void test_idle_residency(int fd, int gt)
>>       assert_within_epsilon(residency_end - residency_start, 
>> elapsed_ms, tolerance);
>>   }
>> +/**
>> + * SUBTEST: stress-gt-c6
>> + * Description: stress test GT C states by acquiring/releasing forcewake
>> + * Run type: FULL
>> + */
>> +static void stress_c6(int fd, int n)
>> +{
>> +    int handle, gt;
>> +
>> +    while (n--) {
>> +        handle = igt_debugfs_open(fd, "forcewake_all", O_WRONLY);
>> +        igt_assert(handle >= 0);
>> +        /* check if all gts are in C0 after forcewake is acquired */
>> +        xe_for_each_gt(fd, gt)
>> +            igt_assert_f(!xe_is_gt_in_c6(fd, gt), "GT in C6\n");
>> +        close(handle);
>> +        /* check if all gts are in C6 after forcewake is released */
>> +        xe_for_each_gt(fd, gt)
>> +            igt_assert_f(igt_wait(xe_is_gt_in_c6(fd, gt), 1000, 1),
>> +                     "GT is not in C6\n");
>> +    }
>> +}
>> +
>>   igt_main
>>   {
>>       int fd, gt;
>> @@ -104,6 +127,10 @@ igt_main
>>           xe_for_each_gt(fd, gt)
>>               test_idle_residency(fd, gt);
>> +    igt_describe("stress test GT C states by acquiring/releasing 
>> forcewake");
>> +    igt_subtest("stress-gt-c6")
>> +        stress_c6(fd, 16);
>> +
>>       igt_fixture {
>>           close(fd);
>>       }
> 
> Hi Riana,
> 
> Just curious, But usually stress testing involves some sort a workload 
> running to test out rc6 during the run. Will you be introducing another 
> test with a spinner of sorts ?I will be sending out another patch series for exec as well which will 
be similar to rc6-idle of i915.

This patch does only acquiring/releasing forcewake and checks GT C 
states. added a loop to check multiple times.

Should i rename the test?

Thanks
Riana
> 
> Thanks,
> 
> Suja
> 


More information about the igt-dev mailing list