From: Thomas Falcon <thomas.falcon@intel.com>
To: Bjorn Helgaas <bhelgaas@google.com>,
"Rafael J . Wysocki" <rafael@kernel.org>
Cc: "David E . Box" <david.e.box@linux.intel.com>,
Lukas Wunner <lukas@wunner.de>,
Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>,
Len Brown <lenb@kernel.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
Thomas Falcon <thomas.falcon@intel.com>
Subject: [RFC PATCH 0/4] pcie/aspm: Enable all advertised ASPM states by default
Date: Wed, 29 Apr 2026 13:06:42 -0500 [thread overview]
Message-ID: <20260429180647.197072-1-thomas.falcon@intel.com> (raw)
Hi Bjorn, Rafael, all,
This series follows up on the discussion from August 2025 about ASPM
default behavior and enabling all advertised link power states by
default [1].
Today, ASPM behavior is influenced first by build-time configuration
(CONFIG_PCIEASPM_*), along with firmware-provided defaults. The reliance
on Kconfig for policy selection and the current two-phase configuration
model (initial safe setup followed by a later, more aggressive
driver-triggered configuration) complicate both usage and maintenance.
The direction discussed was to move toward a model where the OS enables
all supported ASPM states by default, while still respecting platform
policy (FADT, _OSC), driver constraints, and user overrides.
This series is an RFC to explore that direction and gather feedback.
Specifically, it:
Enables all advertised ASPM states by default via the existing
policy framework, which respects capability masks, blacklist
restrictions, and user configuration.
Consolidates ASPM configuration into a single initialization step,
instead of the current two-phase model (pre-driver “safe” init
followed by driver-probe adjustments). This simplifies behavior and
reduces maintenance complexity.
Adds detailed debug instrumentation to make ASPM configuration
decisions and transitions more visible, helping to evaluate impact
and identify mismatches with firmware expectations.
Limits the default behavior change to newer systems using a DMI BIOS
year check (>= 2025). This is intended to reduce risk on legacy
platforms where firmware expectations or device behavior may not
tolerate more aggressive ASPM enablement.
Removes CONFIG_PCIEASPM_* policy selections in favor of runtime
policy selection, simplifying configuration and making behavior
more consistent.
This RFC is not intended for immediate upstreaming, but to evaluate the
feasibility and impact of this approach.
This does not address synthetic PCIe hierarchies (e.g. VMD), which may
lack valid firmware policy entirely. Those cases likely require
targeted handling and are left for follow-on work so that the core
defaulting model can be evaluated independently.
Feedback is especially welcome on:
The DMI-based gating approach for limiting rollout risk
Whether this correctly captures “enable all advertised states”
The removal of Kconfig-based policy selection
The shift from a two-phase to single-phase configuration model
[1] https://lore.kernel.org/linux-pci/20250828204345.GA958461@bhelgaas/
Thomas Falcon (4):
pcie/aspm: Add debug logging for aspm policy config
pcie/aspm: Enable all power-saving states during link state
initialization
pcie/aspm: Enable all hardware power-saving states by default
pcie/aspm: Remove CONFIG_PCIEASPM_* policy definitions
Documentation/arch/x86/amd-debugging.rst | 5 +-
arch/mips/configs/bmips_stb_defconfig | 1 -
arch/mips/configs/loongson2k_defconfig | 1 -
drivers/pci/pci-acpi.c | 4 +-
drivers/pci/pcie/Kconfig | 33 ---------
drivers/pci/pcie/aspm.c | 87 +++++++++++++++++++-----
include/linux/pci.h | 1 +
7 files changed, 77 insertions(+), 55 deletions(-)
--
2.43.0
next reply other threads:[~2026-04-29 18:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-29 18:06 Thomas Falcon [this message]
2026-04-29 18:06 ` [RFC PATCH 1/4] pcie/aspm: Add debug logging for aspm policy config Thomas Falcon
2026-04-29 18:06 ` [RFC PATCH 2/4] pcie/aspm: Enable all power-saving states during link state initialization Thomas Falcon
2026-04-29 18:06 ` [RFC PATCH 3/4] pcie/aspm: Enable all hardware power-saving states by default Thomas Falcon
2026-04-30 10:17 ` Ilpo Järvinen
2026-04-30 22:19 ` Falcon, Thomas
2026-04-29 18:06 ` [RFC PATCH 4/4] pcie/aspm: Remove CONFIG_PCIEASPM_* policy definitions Thomas Falcon
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=20260429180647.197072-1-thomas.falcon@intel.com \
--to=thomas.falcon@intel.com \
--cc=bhelgaas@google.com \
--cc=david.e.box@linux.intel.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=manivannan.sadhasivam@oss.qualcomm.com \
--cc=rafael@kernel.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