From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Mario Limonciello <mario.limonciello@amd.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Bjorn Helgaas <helgaas@kernel.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Iain Lane <iain@orangesquash.org.uk>,
Shyam-sundar S-k <Shyam-sundar.S-k@amd.com>
Subject: Re: [PATCH v13 09/12] ACPI: x86: s2idle: Add a function to get constraints for a device
Date: Fri, 18 Aug 2023 18:47:11 +0300 [thread overview]
Message-ID: <ZN+Sfx8uTWuM+CHp@smile.fi.intel.com> (raw)
In-Reply-To: <CAJZ5v0jdqHeEFNbxTvVPHnC6uUVYmXKNVGZNMnSDVQDCyhCvNg@mail.gmail.com>
On Fri, Aug 18, 2023 at 05:38:15PM +0200, Rafael J. Wysocki wrote:
> On Fri, Aug 18, 2023 at 4:04 PM Mario Limonciello
> <mario.limonciello@amd.com> wrote:
> > On 8/18/2023 05:47, Andy Shevchenko wrote:
> > > On Fri, Aug 18, 2023 at 10:31:03AM +0200, Rafael J. Wysocki wrote:
> > >> On Fri, Aug 18, 2023 at 7:15 AM Mario Limonciello
> > >> <mario.limonciello@amd.com> wrote:
...
> > >> I think that some overhead would be reduced below if this were taking
> > >> a struct acpi_device pointer as the argument.
> > >
> > > Hmm... Either you need a pointer to handle, which involves pointer arithmetics
> > > or something else. I would believe if you tell that ACPI handle should be passed,
> > > but current suggestion is not obvious to me how it may help.
> >
> > To Rafael's point about overhead there are potentially "less" calls into
> > acpi_get_lps0_constraint if it's a 'struct acpi_device' pointer because
> > it won't be called by caller for any devices that don't have an ACPI
> > companion.
> >
> > >>> + struct lpi_constraints *entry;
> > >>> +
> > >>> + for_each_lpi_constraint(entry) {
> > >>> + if (!device_match_acpi_handle(dev, entry->handle))
> > >
> > > Here we retrieve handle...
>
> Which uses ACPI_HANDLE() to retrieve the companion ACPI handle for
> dev. This checks dev against NULL and then passes it to
> ACPI_COMPANION() which resolves to to_acpi_device_node() on the dev's
> fwnode field and that involves an is_acpi_device_node() check and some
> pointer arithmetic via container_of(). Of course, this needs to be
> done in every iteration of the loop until a matching handle is found
> (or not), and because dev is always the same, the result of this will
> be the same every time. If this is not pointless overhead then I'm not
> quite sure how to call it.
>
> Now, if struct acpi_device *adev is passed as the argument, the check
> above reduces to (adev->handle == entry->handle) which is much more
> straightforward IMV.
Yes, this is fine, and if we move out dev_dbg() call, the suggestion makes
even more sense. I agree with your arguments.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-08-18 15:48 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-18 5:13 [PATCH v13 00/12] Fix wakeup problems on some AMD platforms Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 01/12] PCI: Only put Intel PCIe ports >= 2015 into D3 Mario Limonciello
2023-08-18 8:12 ` Rafael J. Wysocki
2023-08-18 8:21 ` David Laight
2023-08-18 9:19 ` Rafael J. Wysocki
2023-08-18 13:54 ` Mario Limonciello
2023-08-18 14:19 ` Kuppuswamy Sathyanarayanan
2023-08-18 5:13 ` [PATCH v13 02/12] ACPI: Add comments to clarify some #ifdef statements Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 03/12] ACPI: Adjust #ifdef for *_lps0_dev use Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 04/12] ACPI: x86: s2idle: Post-increment variables when getting constraints Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 05/12] ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 06/12] ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 07/12] ACPI: x86: s2idle: Add more debugging for AMD constraints parsing Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 08/12] ACPI: x86: s2idle: Add for_each_lpi_constraint() helper Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 09/12] ACPI: x86: s2idle: Add a function to get constraints for a device Mario Limonciello
2023-08-18 8:31 ` Rafael J. Wysocki
2023-08-18 10:47 ` Andy Shevchenko
2023-08-18 14:04 ` Mario Limonciello
2023-08-18 15:38 ` Rafael J. Wysocki
2023-08-18 15:47 ` Andy Shevchenko [this message]
2023-08-18 15:47 ` Rafael J. Wysocki
2023-08-18 5:13 ` [PATCH v13 10/12] PCI: ACPI: Add helper functions for converting ACPI <->PCI states Mario Limonciello
2023-08-18 5:13 ` [PATCH v13 11/12] PCI: ACPI: Use device constraints to opt devices into D3 support Mario Limonciello
2023-08-18 16:06 ` Rafael J. Wysocki
2023-08-18 5:13 ` [PATCH v13 12/12] PCI: ACPI: Limit the Intel specific opt-in to D3 to 2024 Mario Limonciello
2023-08-18 16:09 ` Rafael J. Wysocki
2023-08-18 8:06 ` [PATCH v13 00/12] Fix wakeup problems on some AMD platforms Rafael J. Wysocki
2023-08-18 13:53 ` Mario Limonciello
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=ZN+Sfx8uTWuM+CHp@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=Shyam-sundar.S-k@amd.com \
--cc=helgaas@kernel.org \
--cc=iain@orangesquash.org.uk \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael@kernel.org \
--cc=sathyanarayanan.kuppuswamy@linux.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