[igt-dev] [PATCH i-g-t 3/4] tests/gem_ctx_freq: Disable SLPC efficient freq for the test
Dixit, Ashutosh
ashutosh.dixit at intel.com
Thu Jun 8 15:50:06 UTC 2023
On Wed, 07 Jun 2023 23:01:57 -0700, Belgaumkar, Vinay wrote:
>
>
> On 6/5/2023 6:21 PM, Ashutosh Dixit wrote:
> > When SLPC efficient freq is enabled, GPU frequencies can be outside the
> > min/max range set from sysfs. Any test which compares actual GPU frequency
> > against set frequencies is therefore meaninful only when SLPC efficient
> > freq is disabled.
> >
> > Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/6786
> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
> > ---
> > tests/i915/gem_ctx_freq.c | 15 ++++++++++++++-
> > 1 file changed, 14 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/i915/gem_ctx_freq.c b/tests/i915/gem_ctx_freq.c
> > index b2f6c2af55e1..6dfcf4187d4b 100644
> > --- a/tests/i915/gem_ctx_freq.c
> > +++ b/tests/i915/gem_ctx_freq.c
> > @@ -131,6 +131,15 @@ static bool get_sysfs_freq(int dirfd, uint32_t *min, uint32_t *max)
> > igt_sysfs_rps_scanf(dirfd, RPS_MAX_FREQ_MHZ, "%u", max) == 1);
> > }
> > +static void slpc_ignore_efficient_freq(int dirfd, bool val)
> > +{
> > + if (!(gem_using_guc_submission(i915) && i915_is_slpc_enabled(i915)))
> > + return;
> There was a reason why I had both, not remembering now.
OK, I have retained this for now as is in v2.
> > +
> > + igt_require(igt_sysfs_has_attr(dirfd, "slpc_ignore_eff_freq"));
> > + igt_assert(igt_sysfs_set_u32(dirfd, "slpc_ignore_eff_freq", val));
> > +}
>
> Can we add this as a helper in lib/igt_pm.c? I suspect there might be other
> present/future tests that may need to use this.
Done in v2.
Thanks.
--
Ashutosh
>
> > +
> > static void sysfs_range(int dirfd, int gt)
> > {
> > #define N_STEPS 10
> > @@ -147,9 +156,11 @@ static void sysfs_range(int dirfd, int gt)
> > * The sysfs interface sets the global limits and overrides the
> > * user's request. So we can to check that if the user requests
> > * a range outside of the sysfs, the requests are only run at the
> > - * constriained sysfs range.
> > + * constrained sysfs range. With GuC SLPC this requires disabling
> > + * efficient freq.
> > */
> > + slpc_ignore_efficient_freq(dirfd, true);
> > igt_require(get_sysfs_freq(dirfd, &sys_min, &sys_max));
> > igt_info("System min freq: %dMHz; max freq: %dMHz\n", sys_min, sys_max);
> > @@ -199,6 +210,8 @@ static void __restore_sysfs_freq(int dirfd)
> > {
> > char buf[256];
> > + slpc_ignore_efficient_freq(dirfd, false);
> > +
> > if (igt_sysfs_read(sysfs, "gt_RPn_freq_mhz", buf, sizeof(buf)) > 0)
> > igt_sysfs_rps_set(dirfd, RPS_MIN_FREQ_MHZ, buf);
> >
More information about the igt-dev
mailing list