From: "Mario Limonciello (AMD)" <superm1@kernel.org>
To: "Rafael J . Wysocki" <rafael@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Danilo Krummrich <dakr@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>
Cc: "Pavel Machek" <pavel@kernel.org>, "Len Brown" <lenb@kernel.org>,
"Christian König" <christian.koenig@amd.com>,
"James E . J . Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
linux-pm@vger.kernel.org (open list:HIBERNATION (aka Software
Suspend, aka swsusp)),
amd-gfx@lists.freedesktop.org (open list:RADEON and AMDGPU DRM
DRIVERS), dri-devel@lists.freedesktop.org (open list:DRM DRIVERS),
linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM),
linux-scsi@vger.kernel.org (open list:SCSI SUBSYSTEM),
linux-usb@vger.kernel.org (open list:USB SUBSYSTEM),
linux-trace-kernel@vger.kernel.org (open list:TRACING),
"AceLan Kao" <acelan.kao@canonical.com>,
"Kai-Heng Feng" <kaihengf@nvidia.com>,
"Mark Pearson" <mpearson-lenovo@squebb.ca>,
"Merthan Karakaş" <m3rthn.k@gmail.com>,
"Eric Naim" <dnaim@cachyos.org>,
"Guilherme G . Piccoli" <gpiccoli@igalia.com>,
"Mario Limonciello (AMD)" <superm1@kernel.org>
Subject: [PATCH v7 00/12] Improvements to S5 power consumption
Date: Tue, 9 Sep 2025 14:16:07 -0500 [thread overview]
Message-ID: <20250909191619.2580169-1-superm1@kernel.org> (raw)
A variety of issues both in function and in power consumption have been
raised as a result of devices not being put into a low power state when
the system is powered off.
There have been some localized changes[1] to PCI core to help these issues,
but they have had various downsides.
This series instead uses the driver hibernate flows when the system is
being powered off or halted. This lines up the behavior with what other
operating systems do as well. If for some reason that fails or is not
supported, run driver shutdown() callbacks.
Rafael did mention in earlier versions of the series concerns about
regression risk. He was looking for thoughts from Greg who isn't against
it but also isn't sure about how to maintain it. [1]
This has been validated by me and several others in AMD
on a variety of AMD hardware platforms. It's been validated by some
community members on their Intel hardware. To my knowledge it has not
been validated on non-x86.
On my development laptop I have also contrived failures in the hibernation
callbacks to make sure that the fallback to shutdown callback works.
In order to assist with potential regressions the series also includes
documentation to help with getting a kernel log at shutdown after
the disk is unmounted.
Cc: AceLan Kao <acelan.kao@canonical.com>
Cc: Kai-Heng Feng <kaihengf@nvidia.com>
Cc: Mark Pearson <mpearson-lenovo@squebb.ca>
Cc: Merthan Karakaş <m3rthn.k@gmail.com>
Cc: Eric Naim <dnaim@cachyos.org>
Link: https://lore.kernel.org/linux-usb/2025090852-coma-tycoon-9f37@gregkh/ [1]
---
v6->v7:
* Add documentation on how to debug a shutdown hang
* Adjust commit messages per feedback from Bjorn
Mario Limonciello (AMD) (12):
PM: Introduce new PMSG_POWEROFF event
scsi: Add PM_EVENT_POWEROFF into suspend callbacks
usb: sl811-hcd: Add PM_EVENT_POWEROFF into suspend callbacks
USB: Pass PMSG_POWEROFF event to suspend_common()
PCI/PM: Disable device wakeups when halting or powering off system
PCI/PM: Split out code from pci_pm_suspend_noirq() into helper
PCI/PM: Run bridge power up actions as part of restore phase
PCI/PM: Use pci_power_manageable() in pci_pm_poweroff_noirq()
PCI: Put PCIe bridges with downstream devices into D3 at hibernate
drm/amd: Avoid evicting resources at S5
PM: Use hibernate flows for system power off
Documentation: power: Add document on debugging shutdown hangs
Documentation/power/index.rst | 1 +
Documentation/power/shutdown-debugging.rst | 55 ++++++++++++
drivers/base/power/main.c | 7 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +
drivers/pci/pci-driver.c | 99 +++++++++++++++-------
drivers/scsi/mesh.c | 1 +
drivers/scsi/stex.c | 1 +
drivers/usb/core/hcd-pci.c | 11 ++-
drivers/usb/host/sl811-hcd.c | 1 +
include/linux/pm.h | 5 +-
include/trace/events/power.h | 3 +-
kernel/reboot.c | 6 ++
12 files changed, 159 insertions(+), 35 deletions(-)
create mode 100644 Documentation/power/shutdown-debugging.rst
base-commit: 76eeb9b8de9880ca38696b2fb56ac45ac0a25c6c
--
2.43.0
next reply other threads:[~2025-09-09 19:16 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-09 19:16 Mario Limonciello (AMD) [this message]
2025-09-09 19:16 ` [PATCH v7 01/12] PM: Introduce new PMSG_POWEROFF event Mario Limonciello (AMD)
2025-09-10 13:58 ` Rafael J. Wysocki
2025-09-10 17:48 ` Mario Limonciello
2025-09-10 18:00 ` Rafael J. Wysocki
2025-09-09 19:16 ` [PATCH v7 02/12] scsi: Add PM_EVENT_POWEROFF into suspend callbacks Mario Limonciello (AMD)
2025-09-10 1:50 ` Martin K. Petersen
2025-09-09 19:16 ` [PATCH v7 03/12] usb: sl811-hcd: " Mario Limonciello (AMD)
2025-09-09 19:16 ` [PATCH v7 04/12] USB: Pass PMSG_POWEROFF event to suspend_common() Mario Limonciello (AMD)
2025-09-09 19:16 ` [PATCH v7 05/12] PCI/PM: Disable device wakeups when halting or powering off system Mario Limonciello (AMD)
2025-09-10 15:06 ` Bjorn Helgaas
2025-09-10 16:52 ` Mario Limonciello
2025-09-10 17:11 ` Bjorn Helgaas
2025-09-10 17:24 ` Mario Limonciello
2025-09-10 17:38 ` Rafael J. Wysocki
2025-09-09 19:16 ` [PATCH v7 06/12] PCI/PM: Split out code from pci_pm_suspend_noirq() into helper Mario Limonciello (AMD)
2025-09-10 14:46 ` Bjorn Helgaas
2025-09-10 16:52 ` Mario Limonciello
2025-09-10 17:35 ` Rafael J. Wysocki
2025-09-09 19:16 ` [PATCH v7 07/12] PCI/PM: Run bridge power up actions as part of restore phase Mario Limonciello (AMD)
2025-09-10 17:48 ` Rafael J. Wysocki
2025-09-09 19:16 ` [PATCH v7 08/12] PCI/PM: Use pci_power_manageable() in pci_pm_poweroff_noirq() Mario Limonciello (AMD)
2025-09-09 19:16 ` [PATCH v7 09/12] PCI: Put PCIe bridges with downstream devices into D3 at hibernate Mario Limonciello (AMD)
2025-09-09 19:16 ` [PATCH v7 10/12] drm/amd: Avoid evicting resources at S5 Mario Limonciello (AMD)
2025-09-09 19:16 ` [PATCH v7 11/12] PM: Use hibernate flows for system power off Mario Limonciello (AMD)
2025-09-10 15:18 ` Bjorn Helgaas
2025-09-10 15:36 ` Mario Limonciello
2025-09-09 19:16 ` [PATCH v7 12/12] Documentation: power: Add document on debugging shutdown hangs Mario Limonciello (AMD)
2025-09-10 18:11 ` [PATCH v7 00/12] Improvements to S5 power consumption Rafael J. Wysocki
2025-09-10 18:19 ` Mario Limonciello
2025-09-10 18:23 ` Rafael J. Wysocki
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=20250909191619.2580169-1-superm1@kernel.org \
--to=superm1@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=acelan.kao@canonical.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=bhelgaas@google.com \
--cc=christian.koenig@amd.com \
--cc=dakr@kernel.org \
--cc=dnaim@cachyos.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gpiccoli@igalia.com \
--cc=gregkh@linuxfoundation.org \
--cc=kaihengf@nvidia.com \
--cc=lenb@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=m3rthn.k@gmail.com \
--cc=martin.petersen@oracle.com \
--cc=mpearson-lenovo@squebb.ca \
--cc=pavel@kernel.org \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.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;
as well as URLs for NNTP newsgroup(s).