From: Lukas Wunner <lukas@wunner.de>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: linux-pci@vger.kernel.org,
Christian Zigotzky <chzigotzky@xenosoft.de>,
Manivannan Sadhasivam <mani@kernel.org>,
mad skateman <madskateman@gmail.com>,
"R . T . Dickinson" <rtd2@xtra.co.nz>,
Darren Stevens <darren@stevens-zone.net>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
luigi burdo <intermediadc@hotmail.com>, Al <al@datazap.net>,
Roland <rol7and@gmx.com>, Hongxing Zhu <hongxing.zhu@nxp.com>,
hypexed@yahoo.com.au, linuxppc-dev@lists.ozlabs.org,
debian-powerpc@lists.debian.org, linux-kernel@vger.kernel.org,
Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v2 0/4] PCI/ASPM: Allow quirks to avoid L0s and L1
Date: Tue, 11 Nov 2025 10:33:43 +0100 [thread overview]
Message-ID: <aRMC9z93mI5BKbW0@wunner.de> (raw)
In-Reply-To: <20251110222929.2140564-1-helgaas@kernel.org>
On Mon, Nov 10, 2025 at 04:22:24PM -0600, Bjorn Helgaas wrote:
> We enabled ASPM too aggressively in v6.18-rc1. f3ac2ff14834 ("PCI/ASPM:
> Enable all ClockPM and ASPM states for devicetree platforms") enabled ASPM
> L0s, L1, and (if advertised) L1 PM Substates.
>
> df5192d9bb0e ("PCI/ASPM: Enable only L0s and L1 for devicetree platforms")
> (v6.18-rc3) backed off and omitted Clock PM and L1 Substates because we
> don't have good infrastructure to discover CLKREQ# support, and L1
> Substates may require device-specific configuration.
>
> L0s and L1 are generically discoverable and should not require
> device-specific support, but some devices advertise them even though they
> don't work correctly. This series is a way to add quirks avoid L0s and L1
> in this case.
Reviewed-by: Lukas Wunner <lukas@wunner.de>
I note that a number of drivers call pci_disable_link_state() or
pci_disable_link_state_locked() to disable ASPM on probe.
Can we convert (all of) these to quirks which use the new helper
introduced here?
I think that would be useful because it would disable ASPM even if
the driver isn't available and thus avoid e.g. AER messages caused
by ASPM issues.
pcie_aspm_init_link_state() also contains the following code comment:
/*
* At this stage drivers haven't had an opportunity to change the
* link policy setting. Enabling ASPM on broken hardware can cripple
* it even before the driver has had a chance to disable ASPM, so
* default to a safe level right now. If we're enabling ASPM beyond
* the BIOS's expectation, we'll do so once pci_enable_device() is
* called.
*/
If we'd mask out incorrect or non-working L0s/L1 capabilities for all
devices early during enumeration via quirks, we wouldn't have to go
through these contortions of setting up deeper ASPM states only at
device enable time.
Thanks,
Lukas
next prev parent reply other threads:[~2025-11-11 9:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 22:22 [PATCH v2 0/4] PCI/ASPM: Allow quirks to avoid L0s and L1 Bjorn Helgaas
2025-11-10 22:22 ` [PATCH v2 1/4] PCI/ASPM: Cache L0s/L1 Supported so advertised link states can be overridden Bjorn Helgaas
2025-11-10 22:22 ` [PATCH v2 2/4] PCI/ASPM: Add pcie_aspm_remove_cap() to override advertised link states Bjorn Helgaas
2025-11-12 17:27 ` Manivannan Sadhasivam
2025-11-12 20:46 ` Bjorn Helgaas
2025-11-13 4:02 ` Maciej W. Rozycki
2025-11-10 22:22 ` [PATCH v2 3/4] PCI/ASPM: Convert quirks " Bjorn Helgaas
2025-11-10 22:22 ` [PATCH v2 4/4] PCI/ASPM: Avoid L0s and L1 on Freescale Root Ports Bjorn Helgaas
2025-11-11 1:33 ` [PATCH v2 0/4] PCI/ASPM: Allow quirks to avoid L0s and L1 Shawn Lin
2025-11-11 9:33 ` Lukas Wunner [this message]
2025-11-11 15:44 ` Bjorn Helgaas
2025-11-12 14:40 ` Lukas Wunner
2025-11-11 17:11 ` Bjorn Helgaas
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=aRMC9z93mI5BKbW0@wunner.de \
--to=lukas@wunner.de \
--cc=al@datazap.net \
--cc=bhelgaas@google.com \
--cc=chzigotzky@xenosoft.de \
--cc=darren@stevens-zone.net \
--cc=debian-powerpc@lists.debian.org \
--cc=glaubitz@physik.fu-berlin.de \
--cc=helgaas@kernel.org \
--cc=hongxing.zhu@nxp.com \
--cc=hypexed@yahoo.com.au \
--cc=intermediadc@hotmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=madskateman@gmail.com \
--cc=mani@kernel.org \
--cc=rol7and@gmx.com \
--cc=rtd2@xtra.co.nz \
/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;
as well as URLs for NNTP newsgroup(s).