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

Riana Tauro riana.tauro at intel.com
Mon Jul 31 13:23:27 UTC 2023


Hi Anshuman

On 7/31/2023 5:34 PM, Gupta, Anshuman wrote:
> 
> 
>> -----Original Message-----
>> From: Sundaresan, Sujaritha <sujaritha.sundaresan at intel.com>
>> Sent: Monday, July 31, 2023 3:38 PM
>> To: Tauro, Riana <riana.tauro at intel.com>; igt-dev at lists.freedesktop.org
>> Cc: Nilawar, Badal <badal.nilawar at intel.com>; Gupta, Anshuman
>> <anshuman.gupta at intel.com>; Belgaumkar, Vinay
>> <vinay.belgaumkar at intel.com>
>> Subject: Re: [igt-dev] [PATCH i-g-t] RFC tests/xe: Stress test GT C states
>>
>>
>> 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")
> How about toggle-gt-c6 ?
Sounds better. Will rename and send a new rev

Thanks
Riana
> Thanks,
> Anshuman Gupta.
>>>>> +        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