From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A648AC77B71 for ; Fri, 14 Apr 2023 18:14:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BF35910EE45; Fri, 14 Apr 2023 18:14:34 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 99C9D10E002; Fri, 14 Apr 2023 18:14:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681496072; x=1713032072; h=date:message-id:from:to:cc:subject:in-reply-to: references:mime-version; bh=uk2PaUqmR6zwiYDi9X5rRhOu4hNT1X/Z9mIooydR9LY=; b=iQFgeyDMOD7LtEiaRDINg2884Jz5h8Nx6XZzt/hXJfEhziEYKt+LMWhK OyIffhyF9evzCOyiVn7OeunQ9sUZ2YUqmFIgz/MRlSO42X1q2vF79aeUA qVLPemV+L+fCEJ/BrPQkt6FhvD2nBRgxj6fW2wzeBpH+4C/dhimWa5Yeo 0XQMcntJKfvhzGZlhxEB/vmuMkPBwIRjHfSJxN3MkXkYZ2fZQroo0M90D 61GChl0P2c4YZqHUSwkgsv2NMZrVxV6TkULg0oiUbSsBP1sI4xHbw1m8A gXu5ySnJARygwLQDIE9nbPDg0HC97UYfuQZHRu91h57Y5lDywBFSpnpv9 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10680"; a="344534795" X-IronPort-AV: E=Sophos;i="5.99,197,1677571200"; d="scan'208";a="344534795" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2023 11:14:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10680"; a="689901575" X-IronPort-AV: E=Sophos;i="5.99,197,1677571200"; d="scan'208";a="689901575" Received: from adixit-mobl.amr.corp.intel.com (HELO adixit-arch.intel.com) ([10.209.100.250]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2023 11:14:12 -0700 Date: Fri, 14 Apr 2023 11:10:39 -0700 Message-ID: <87jzyeqqqo.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Vinay Belgaumkar In-Reply-To: <20230413224414.2313507-3-vinay.belgaumkar@intel.com> References: <20230413224414.2313507-1-vinay.belgaumkar@intel.com> <20230413224414.2313507-3-vinay.belgaumkar@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Subject: Re: [Intel-gfx] [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, 13 Apr 2023 15:44:12 -0700, Vinay Belgaumkar wrote: > > Use default of 0 where GT id is not being used. > > Signed-off-by: Vinay Belgaumkar > --- > lib/igt_pm.c | 20 ++++++++++---------- > lib/igt_pm.h | 2 +- > tests/i915/i915_pm_rps.c | 6 +++--- > 3 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/lib/igt_pm.c b/lib/igt_pm.c > index 704acf7d..8ca7c181 100644 > --- a/lib/igt_pm.c > +++ b/lib/igt_pm.c > @@ -1329,21 +1329,21 @@ void igt_pm_print_pci_card_runtime_status(void) > } > } > > -bool i915_is_slpc_enabled(int fd) > +bool i915_is_slpc_enabled(int drm_fd, int gt) OK, we understand that the debugfs dir path is per gt, but I am wondering if we need to expose this as a function argument? Since, in all instances, we are always passing gt as 0. Maybe the caller is only interested in knowing if slpc is enabled. Can SLPC be enabled for gt 0 and disabled for gt 1? In the case the caller should really call something like: for_each_gt() i915_is_slpc_enabled(fd, gt) and return false if slpc is disabled for any gt. I think what we should do is write two functions: 1. Rename the function above with the gt argument to something like: i915_is_slpc_enabled_gt() 2. Have another function without the gt argument: i915_is_slpc_enabled() which will do: for_each_gt() i915_is_slpc_enabled_gt(fd, gt) and return false if slpc is disabled for any gt. And then have the tests call this second function without the gt argument. I think this will be cleaner than passing 0 as the gt from the tests. Thanks. -- Ashutosh > { > - int debugfs_fd = igt_debugfs_dir(fd); > - char buf[4096] = {}; > - int len; > + int debugfs_fd; > + char buf[256] = {}; > + > + debugfs_fd = igt_debugfs_gt_open(drm_fd, gt, "uc/guc_slpc_info", O_RDONLY); > > - igt_require(debugfs_fd != -1); > + /* if guc_slpc_info not present then return false */ > + if (debugfs_fd < 0) > + return false; > + read(debugfs_fd, buf, sizeof(buf)-1); > > - len = igt_debugfs_simple_read(debugfs_fd, "gt/uc/guc_slpc_info", buf, sizeof(buf)); > close(debugfs_fd); > > - if (len < 0) > - return false; > - else > - return strstr(buf, "SLPC state: running"); > + return strstr(buf, "SLPC state: running"); > } > > int igt_pm_get_runtime_suspended_time(struct pci_device *pci_dev) > diff --git a/lib/igt_pm.h b/lib/igt_pm.h > index d0d6d673..1b054dce 100644 > --- a/lib/igt_pm.h > +++ b/lib/igt_pm.h > @@ -84,7 +84,7 @@ void igt_pm_set_d3cold_allowed(struct igt_device_card *card, const char *val); > void igt_pm_setup_pci_card_runtime_pm(struct pci_device *pci_dev); > void igt_pm_restore_pci_card_runtime_pm(void); > void igt_pm_print_pci_card_runtime_status(void); > -bool i915_is_slpc_enabled(int fd); > +bool i915_is_slpc_enabled(int fd, int gt); > int igt_pm_get_runtime_suspended_time(struct pci_device *pci_dev); > int igt_pm_get_runtime_usage(struct pci_device *pci_dev); > > diff --git a/tests/i915/i915_pm_rps.c b/tests/i915/i915_pm_rps.c > index d4ee2d58..85dae449 100644 > --- a/tests/i915/i915_pm_rps.c > +++ b/tests/i915/i915_pm_rps.c > @@ -916,21 +916,21 @@ igt_main > } > > igt_subtest("basic-api") { > - igt_skip_on_f(i915_is_slpc_enabled(drm_fd), > + igt_skip_on_f(i915_is_slpc_enabled(drm_fd, 0), > "This subtest is not supported when SLPC is enabled\n"); > min_max_config(basic_check, false); > } > > /* Verify the constraints, check if we can reach idle */ > igt_subtest("min-max-config-idle") { > - igt_skip_on_f(i915_is_slpc_enabled(drm_fd), > + igt_skip_on_f(i915_is_slpc_enabled(drm_fd, 0), > "This subtest is not supported when SLPC is enabled\n"); > min_max_config(idle_check, true); > } > > /* Verify the constraints with high load, check if we can reach max */ > igt_subtest("min-max-config-loaded") { > - igt_skip_on_f(i915_is_slpc_enabled(drm_fd), > + igt_skip_on_f(i915_is_slpc_enabled(drm_fd, 0), > "This subtest is not supported when SLPC is enabled\n"); > load_helper_run(HIGH); > min_max_config(loaded_check, false); > -- > 2.38.1 >