From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Jonas Dreßler" <verdre@v0yd.nl>
Cc: linux-pci@vger.kernel.org, "Bjorn Helgaas" <bhelgaas@google.com>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Emmanuel Grumbach" <emmanuel.grumbach@intel.com>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Lukas Wunner" <lukas@wunner.de>,
LKML <linux-kernel@vger.kernel.org>,
"Dean Luick" <dean.luick@cornelisnetworks.com>
Subject: Re: [PATCH v3 00/10] PCI: Improve PCIe Capability RMW concurrency control
Date: Tue, 20 Jun 2023 17:11:46 +0300 [thread overview]
Message-ID: <ZJGzov7J2rJRLmgC@smile.fi.intel.com> (raw)
In-Reply-To: <20230620134624.99688-1-ilpo.jarvinen@linux.intel.com>
+Cc: Jonas
Jonas, might be interesting material in scope of Marvell WiFi PM flow.
Also shows that some WiFi chips disable ASPM which might be good to
have on Marvell as well.
On Tue, Jun 20, 2023 at 04:46:14PM +0300, Ilpo Järvinen wrote:
> PCI Express Capability RMW accessors don't properly protect against
> concurrent access. Link Control Register is written by a number of
> things in the kernel in a RMW fashion without any concurrency control.
> This could in the unlucky case lead to losing one of the updates. One
> of the most obvious path which can race with most of the other LNKCTL
> RMW operations seems to be ASPM policy sysfs write which triggers
> LNKCTL update. Similarly, Root Control Register can be concurrently
> accessed by AER and PME.
>
> Make pcie_capability_clear_and_set_word() (and other RMW accessors that
> call it) to use a per device spinlock to protect the RMW operations to
> the Capability Registers that require locking. Convert open-coded
> LNKCTL RMW operations to use pcie_capability_clear_and_set_word() to
> benefit from the locking.
>
> There's also a related series which improves ASPM service driver and
> device driver coordination by removing out-of-band ASPM state
> management from device drivers (which will remove some of the code
> fragments changed by this series but it has higher regression
> potential which is why it seems prudent to do these changes in two
> steps):
> https://lore.kernel.org/linux-pci/20230602114751.19671-1-ilpo.jarvinen@linux.intel.com/T/#t
--
With Best Regards,
Andy Shevchenko
prev parent reply other threads:[~2023-06-20 14:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-20 13:46 [PATCH v3 00/10] PCI: Improve PCIe Capability RMW concurrency control Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 01/10] PCI: Add locking to RMW PCI Express Capability Register accessors Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 02/10] PCI: Make link retraining use RMW accessors for changing LNKCTL Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 03/10] PCI: pciehp: Use " Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 04/10] PCI/ASPM: " Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 05/10] drm/amdgpu: " Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 06/10] drm/radeon: " Ilpo Järvinen
2023-06-20 13:46 ` [PATCH v3 07/10] net/mlx5: " Ilpo Järvinen
2023-06-21 14:46 ` Simon Horman
2023-06-20 13:46 ` [PATCH v3 08/10] wifi: ath11k: " Ilpo Järvinen
2023-06-21 14:47 ` Simon Horman
2023-06-20 13:46 ` [PATCH v3 09/10] wifi: ath12k: " Ilpo Järvinen
2023-06-21 14:47 ` Simon Horman
2023-06-20 13:46 ` [PATCH v3 10/10] wifi: ath10k: " Ilpo Järvinen
2023-06-21 14:46 ` Simon Horman
2023-06-20 14:11 ` Andy Shevchenko [this message]
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=ZJGzov7J2rJRLmgC@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=dean.luick@cornelisnetworks.com \
--cc=emmanuel.grumbach@intel.com \
--cc=hkallweit1@gmail.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=lukas@wunner.de \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=verdre@v0yd.nl \
/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