From: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
To: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT
Date: Fri, 14 Apr 2023 11:10:39 -0700 [thread overview]
Message-ID: <87jzyeqqqo.wl-ashutosh.dixit@intel.com> (raw)
In-Reply-To: <20230413224414.2313507-3-vinay.belgaumkar@intel.com>
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 <vinay.belgaumkar@intel.com>
> ---
> 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
>
next prev parent reply other threads:[~2023-04-14 18:10 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 22:44 [igt-dev] [PATCH v5 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-13 22:44 ` [igt-dev] [PATCH i-g-t 1/4] lib/debugfs: Add per GT debugfs helpers Vinay Belgaumkar
2023-04-13 22:44 ` [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
2023-04-14 18:10 ` Dixit, Ashutosh [this message]
2023-04-14 19:15 ` Belgaumkar, Vinay
2023-04-13 22:44 ` [igt-dev] [PATCH i-g-t 3/4] i915_pm_freq_api: Add some basic SLPC igt tests Vinay Belgaumkar
2023-04-13 22:44 ` [igt-dev] [PATCH i-g-t 4/4] HAX: tests/i915: Try out the SLPC IGT tests Vinay Belgaumkar
2023-04-13 23:45 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/slpc: Add basic IGT test (rev5) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2023-04-14 19:16 [igt-dev] [PATCH v6 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-14 19:16 ` [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
2023-04-14 20:25 ` Dixit, Ashutosh
2023-04-18 0:26 ` Belgaumkar, Vinay
2023-04-23 20:16 ` Belgaumkar, Vinay
2023-04-24 16:55 ` Dixit, Ashutosh
2023-04-24 17:07 ` Dixit, Ashutosh
2023-04-24 17:13 ` Dixit, Ashutosh
2023-04-22 1:00 [igt-dev] [PATCH v7 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-22 1:01 ` [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
2023-04-25 16:24 [igt-dev] [PATCH v7 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-25 16:24 ` [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jzyeqqqo.wl-ashutosh.dixit@intel.com \
--to=ashutosh.dixit@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=vinay.belgaumkar@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox