From: "Belgaumkar, Vinay" <vinay.belgaumkar@intel.com>
To: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [igt-dev] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT
Date: Sun, 23 Apr 2023 13:16:44 -0700 [thread overview]
Message-ID: <73d1718a-ec6b-5c00-fe62-b79ce03ef9b2@intel.com> (raw)
In-Reply-To: <87ildyqkh4.wl-ashutosh.dixit@intel.com>
On 4/14/2023 1:25 PM, Dixit, Ashutosh wrote:
> On Fri, 14 Apr 2023 12:16:37 -0700, Vinay Belgaumkar wrote:
> Hi Vinay,
>
>> Use default of 0 where GT id is not being used.
>>
>> v2: Add a helper for GT 0 (Ashutosh)
>>
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> ---
>> lib/igt_pm.c | 36 ++++++++++++++++++++++++++----------
>> lib/igt_pm.h | 3 ++-
>> 2 files changed, 28 insertions(+), 11 deletions(-)
>>
>> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
>> index 704acf7d..8a30bb3b 100644
>> --- a/lib/igt_pm.c
>> +++ b/lib/igt_pm.c
>> @@ -1329,21 +1329,37 @@ void igt_pm_print_pci_card_runtime_status(void)
>> }
>> }
>>
>> -bool i915_is_slpc_enabled(int fd)
>> +/**
>> + * i915_is_slpc_enabled_gt:
>> + * @drm_fd: DRM file descriptor
>> + * @gt: GT id
>> + * Check if SLPC is enabled on a GT
>> + */
>> +bool i915_is_slpc_enabled_gt(int drm_fd, int gt)
>> {
>> - int debugfs_fd = igt_debugfs_dir(fd);
>> - char buf[4096] = {};
>> - int len;
>> + int debugfs_fd;
>> + char buf[256] = {};
> Shouldn't this be 4096 as before?
>
>> - igt_require(debugfs_fd != -1);
>> + debugfs_fd = igt_debugfs_gt_open(drm_fd, gt, "uc/guc_slpc_info", O_RDONLY);
>> +
>> + /* if guc_slpc_info not present then return false */
>> + if (debugfs_fd < 0)
>> + return false;
> I think this should just be:
>
> igt_require_fd(debugfs_fd);
>
> Basically we cannot determine if SLPC is enabled or not if say debugfs is
> not mounted, so it's not correct return false from here.
Actually, rethinking on this, we should keep it to return false. This is
making tests skip on platforms where it shouldn't. Debugfs will not be
mounted only when driver load fails, which would cause the test to fail
when we try to create the drm fd before this. Case in point -
https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8839/fi-tgl-1115g4/igt@i915_pm_rps@basic-api.html
- here, the test should have run (guc disabled platform) but it skipped.
Thanks,
Vinay.
>
>> + 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");
>> +}
>> +
>> +/**
>> + * i915_is_slpc_enabled:
>> + * @drm_fd: DRM file descriptor
>> + * Check if SLPC is enabled on GT 0
> Hmm, not sure why we are not using the i915_for_each_gt() loop here since
> that is the correct way of doing it.
>
> At the min let's remove the GT 0 in the comment above. This function
> doesn't check for GT0, it checks if "slpc is enabled for the device". We
> can check only on GT0 if we are certain that checking on GT0 is sufficient,
> that is if SLPC is disabled on GT0 it's disabled for the device. But then
> someone can ask the question in that case why are we exposing slpc_enabled
> for each gt from the kernel rather than at the device level.
>
> In any case for now let's change the above comment to:
>
> "Check if SLPC is enabled" or ""Check if SLPC is enabled for the i915
> device".
>
> With the above comments addressed this is:
>
> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>
> Also, why is igt@i915_pm_rps@basic-api still skipping on DG2/ATSM in
> pre-merge CI even after this series?
>
> Thanks.
> --
> Ashutosh
>
>
>> + */
>> +bool i915_is_slpc_enabled(int drm_fd)
>> +{
>> + return i915_is_slpc_enabled_gt(drm_fd, 0);
>> }
>> 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..448cf42d 100644
>> --- a/lib/igt_pm.h
>> +++ b/lib/igt_pm.h
>> @@ -84,7 +84,8 @@ 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_gt(int drm_fd, int gt);
>> +bool i915_is_slpc_enabled(int drm_fd);
>> int igt_pm_get_runtime_suspended_time(struct pci_device *pci_dev);
>> int igt_pm_get_runtime_usage(struct pci_device *pci_dev);
>>
>> --
>> 2.38.1
>>
next prev parent reply other threads:[~2023-04-23 20:16 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-14 19:16 [Intel-gfx] [PATCH v6 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-14 19:16 ` [Intel-gfx] [PATCH i-g-t 1/4] lib/debugfs: Add per GT debugfs helpers Vinay Belgaumkar
2023-04-14 19:16 ` [Intel-gfx] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
2023-04-14 20:25 ` [Intel-gfx] [igt-dev] " Dixit, Ashutosh
2023-04-18 0:26 ` Belgaumkar, Vinay
2023-04-23 20:16 ` Belgaumkar, Vinay [this message]
2023-04-24 16:55 ` Dixit, Ashutosh
2023-04-24 17:07 ` Dixit, Ashutosh
2023-04-24 17:13 ` Dixit, Ashutosh
2023-04-14 19:16 ` [Intel-gfx] [PATCH i-g-t 3/4] i915_pm_freq_api: Add some basic SLPC igt tests Vinay Belgaumkar
2023-04-14 19:16 ` [Intel-gfx] [PATCH i-g-t 4/4] HAX: tests/i915: Try out the SLPC IGT tests Vinay Belgaumkar
-- strict thread matches above, loose matches on Subject: below --
2023-04-13 22:44 [Intel-gfx] [PATCH v5 i-g-t 0/4] tests/slpc: Add basic IGT test Vinay Belgaumkar
2023-04-13 22:44 ` [Intel-gfx] [PATCH i-g-t 2/4] lib: Make SLPC helper function per GT Vinay Belgaumkar
2023-04-14 18:10 ` [Intel-gfx] [igt-dev] " Dixit, Ashutosh
2023-04-14 19:15 ` Belgaumkar, Vinay
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=73d1718a-ec6b-5c00-fe62-b79ce03ef9b2@intel.com \
--to=vinay.belgaumkar@intel.com \
--cc=ashutosh.dixit@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
/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