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

Gupta, Anshuman anshuman.gupta at intel.com
Mon Jul 31 12:04:48 UTC 2023



> -----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 ?
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