From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id E340F10E5D7 for ; Thu, 8 Jun 2023 15:50:07 +0000 (UTC) Date: Thu, 08 Jun 2023 08:50:06 -0700 Message-ID: <877csekl75.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: "Belgaumkar, Vinay" In-Reply-To: References: <20230606012150.2119065-1-ashutosh.dixit@intel.com> <20230606012150.2119065-4-ashutosh.dixit@intel.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Subject: Re: [igt-dev] [PATCH i-g-t 3/4] tests/gem_ctx_freq: Disable SLPC efficient freq for the test List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedesktop.org Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: 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 > > --- > > 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); > >