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

Sundaresan, Sujaritha sujaritha.sundaresan at intel.com
Mon Jul 31 10:07:45 UTC 2023


On 7/31/2023 1:57 PM, Riana Tauro wrote:
> 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.
Got it.
>
> This patch does only acquiring/releasing forcewake and checks GT C 
> states. added a loop to check multiple times.
The loop for this case makes sense.
>
> Should i rename the test?
Maybe ? But I'm not sure to what. I guess this is between sanity and 
stress test. So that can be your call I guess.
>
> Thanks
> Riana
>>
>> Thanks,
>>
>> Suja
>>


More information about the igt-dev mailing list