[igt-dev] [PATCH i-g-t] tests/perf_pmu: Compare against requested freq in frequency subtest

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Nov 9 01:53:19 UTC 2022


On Tue, 08 Nov 2022 13:02:33 -0800, Belgaumkar, Vinay wrote:
>
>
> On 11/8/2022 1:24 AM, Tvrtko Ursulin wrote:
> >
> > On 08/11/2022 01:31, Dixit, Ashutosh wrote:
> >> On Mon, 07 Nov 2022 16:57:24 -0800, Belgaumkar, Vinay wrote:
> >>> On 11/7/2022 4:22 PM, Dixit, Ashutosh wrote:
> >>>> On Mon, 07 Nov 2022 16:18:31 -0800, Dixit, Ashutosh wrote:
> >>>> Hi Vinay,
> >>>>
> >>>> A question for you below.
> >>>>
> >>>>> So I submitted this patch to repro the issue and to print out the
> >>>>> requested
> >>>>> freq from sysfs:
> >>>>>
> >>>>> https://patchwork.freedesktop.org/series/110630/
> >>>>>
> >>>>> And we can see the output here:
> >>>>>
> >>>>> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8061/bat-dg2-11/igt@perf_pmu@frequency.html
> >>>>>
> >>>>> ```
> >>>>> IGT-Version: 1.26-g1bef4d081 (x86_64) (Linux:
> >>>>> 6.1.0-rc4-CI_DRM_12352-gc55ac6a74bd1+ x86_64)
> >>>>> Starting subtest: frequency
> >>>>> Frequency: min=300, max=2050, boost=2050 MHz
> >>>>> Min frequency: requested 349.7, actual 349.7
> >>>>> Max frequency: requested 2048.0, actual 2048.0
> >>>>> Sysfs requested: min 350, max 2050
> >>>>> Stack trace:
> >>>>>     #0 ../../../usr/src/igt-gpu-tools/lib/igt_core.c:1908
> >>>>> __igt_fail_assert()
> >>>>>     #1 ../../../usr/src/igt-gpu-tools/tests/i915/perf_pmu.c:1656
> >>>>> __igt_unique____real_main2147()
> >>>>>     #2 ../../../usr/src/igt-gpu-tools/tests/i915/perf_pmu.c:2147
> >>>>> main()
> >>>>>     #3 [__libc_start_main+0xf3]
> >>>>>     #4 [_start+0x2e]
> >>>>> Subtest frequency: FAIL (2.212s)
> >>>>> ```
> >>>>>
> >>>>> So we clearly see the requested freq from sysfs is indeed 350 MHz so
> >>>>> SLPC/PCODE is not honoring the set min == max == boost freq (and PMU
> >>>>> is
> >>>>> measuring what sysfs is showing). In general PCODE is the final
> >>>>> arbiter in
> >>>>> such cases and we do occasionally see instances where set freq limits
> >>>>> are
> >>>>> not honored.
> >>>>>
> >>>>> I would say if igt at perf_pmu@frequency is testing freq measured by PMU
> >>>>> then
> >>>>> the patch below is correct. Whether SLPC/PCODE is honoring the set
> >>>>> freq
> >>>>> limits should be tested in a SLPC test (which we also have).
> >>>>
> >>>> igt at perf_pmu@frequency sets 'min == max == boost == 300 MHz' but we
> >>>> still
> >>>> see the requested freq to be 350 MHz. Do we have a SLPC test covering
> >>>> this
> >>>> scenario or should we add one? This is failing on one of the DG2's.
> >>>
> >>> Does adding a delay help (around 20 ms for the h2g to go through
> >>> typically)?
> >>
> >> There is no delay but the test calls gem_quiescent_gpu() after setting
> >> 'min
> >> == max == boost == 300 MHz' and then launches a spinner. We are checking
> >> the requested freq 500 ms after the spinner is started (so plenty of
> >> time
> >> for the h2g) and still the requested freq is 350 MHz.
> >>
> >>> Also, is there a workload running when we change the min=max=boost to
> >>> 300?
> >>
> >> No, the workload is started after setting the freq and calling
> >> gem_quiescent_gpu().
> >
> > Implication here seems to be that gem_quiescent_gpu() would need to cover
> > H2G communication - does it?
> No, more like there needs to be a WL running in order for SLPC to actively
> make changes to the requested frequency.

Well here we set the freq's first and later when the WL runs FW should
select an appropriate requested freq.

> >
> >>> We already check these things in our SLPC selftests.
> >
> > Is it then expected to respect the 300MHz max in this case? Or if it
> > can't, should it be reflected in the sysfs readback?
>
> It should respect the 300 Mhz. The only question in my mind is regarding
> efficient frequency. Can we print out what the RP1 is here?

RP1 is also 300. We can see it here:

https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8071/bat-dg2-11/igt@perf_pmu@frequency.html

with this patch:

https://patchwork.freedesktop.org/series/110630/#rev3

In this case, min == max == 300, but requested freq is 400 (previously it
was 350).

Thanks.
--
Ashutosh


More information about the igt-dev mailing list