Re: [PATCH v6 00/11] Improvements to S5 power consumption

Rafael J. Wysocki
2025-09-03T11:14:32Z

On Wed, Sep 3, 2025 at 6:41 AM Mario Limonciello <superm1@kernel.org> wrote:
>
> On 8/17/2025 9:00 PM, Mario Limonciello (AMD) wrote:
> > 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 tries to use the S4 flow when the system is being
> > powered off. This lines up the behavior with what other operating systems
> > do as well. If for some reason that fails or is not supported, run their
> > shutdown() callbacks.
> >
> > 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>
> > ---
> > v5->v6:
> > * Fix for LKP robot issue
> > * Some commit message changes
> > * Rebase on 6.17-rc2
> >
> > Mario Limonciello (AMD) (11):
> > 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() for poweroff with S4
> > flow
> > PCI: PM: Disable device wakeups when halting system through S4 flow
> > 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
> >
> > 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 ++
> > 10 files changed, 103 insertions(+), 35 deletions(-)
> >
>
> Rafael, Bjorn,
>
> Any feedback for this series?

I still have the same basic concern as before: It is an intrusive
change likely to cause regressions to occur.

It also changes the driver ABI quite dramatically because different
callbacks will now be used for system shutdown and kexec, for example,
at least on some platforms.

Frankly, I'd like to know Greg's and Danilo's opinions on the direction here.