[PATCH 0/5] Improvements to PCI hibernate path

Mario Limonciello (AMD) posted 5 patches 1 month, 3 weeks ago
There is a newer version of this series
drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
1 file changed, 69 insertions(+), 34 deletions(-)
[PATCH 0/5] Improvements to PCI hibernate path
Posted by Mario Limonciello (AMD) 1 month, 3 weeks ago
A few cycles ago I sent out a kernel series for using the S4 paths when
the system goes to S5.  Some parts of it got merged, and Rafael suggested
to split the other parts into smaller pieces across multiple kernel cycles
to make bisecting easier.

This fell into my backlog behind other things, so I wanted to try again
this cycle for the PCI pieces. I have been carrying it, rebasing it and
personally using it for a while now though.

This series attempts to unify the PCI suspend and hibernate paths and to
fix some things that I observed to be wrong with how I expect hibernate
to work.

It is based off 7.1-rc1 + Lukas' patch:
"PCI: Stop setting cached power state to "unknown" on unbind"

Mario Limonciello (AMD) (5):
  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

 drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
 1 file changed, 69 insertions(+), 34 deletions(-)

-- 
2.43.0
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
On Mon, Apr 27, 2026 at 5:53 AM Mario Limonciello (AMD)
<superm1@kernel.org> wrote:
>
> A few cycles ago I sent out a kernel series for using the S4 paths when
> the system goes to S5.  Some parts of it got merged, and Rafael suggested
> to split the other parts into smaller pieces across multiple kernel cycles
> to make bisecting easier.
>
> This fell into my backlog behind other things, so I wanted to try again
> this cycle for the PCI pieces. I have been carrying it, rebasing it and
> personally using it for a while now though.
>
> This series attempts to unify the PCI suspend and hibernate paths and to
> fix some things that I observed to be wrong with how I expect hibernate
> to work.
>
> It is based off 7.1-rc1 + Lukas' patch:
> "PCI: Stop setting cached power state to "unknown" on unbind"
>
> Mario Limonciello (AMD) (5):
>   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
>
>  drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
>  1 file changed, 69 insertions(+), 34 deletions(-)
>
> --

It would be good to CC this to linux-pm.
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Mario Limonciello 1 month, 2 weeks ago
On 4/27/26 07:20, Rafael J. Wysocki wrote:
> On Mon, Apr 27, 2026 at 5:53 AM Mario Limonciello (AMD)
> <superm1@kernel.org> wrote:
>>
>> A few cycles ago I sent out a kernel series for using the S4 paths when
>> the system goes to S5.  Some parts of it got merged, and Rafael suggested
>> to split the other parts into smaller pieces across multiple kernel cycles
>> to make bisecting easier.
>>
>> This fell into my backlog behind other things, so I wanted to try again
>> this cycle for the PCI pieces. I have been carrying it, rebasing it and
>> personally using it for a while now though.
>>
>> This series attempts to unify the PCI suspend and hibernate paths and to
>> fix some things that I observed to be wrong with how I expect hibernate
>> to work.
>>
>> It is based off 7.1-rc1 + Lukas' patch:
>> "PCI: Stop setting cached power state to "unknown" on unbind"
>>
>> Mario Limonciello (AMD) (5):
>>    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
>>
>>   drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
>>   1 file changed, 69 insertions(+), 34 deletions(-)
>>
>> --
> 
> It would be good to CC this to linux-pm.

Sure thing - if there is a need for a v2, I will include linux-pm in CC.
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
On Mon, Apr 27, 2026 at 4:14 PM Mario Limonciello <superm1@kernel.org> wrote:
>
> On 4/27/26 07:20, Rafael J. Wysocki wrote:
> > On Mon, Apr 27, 2026 at 5:53 AM Mario Limonciello (AMD)
> > <superm1@kernel.org> wrote:
> >>
> >> A few cycles ago I sent out a kernel series for using the S4 paths when
> >> the system goes to S5.  Some parts of it got merged, and Rafael suggested
> >> to split the other parts into smaller pieces across multiple kernel cycles
> >> to make bisecting easier.
> >>
> >> This fell into my backlog behind other things, so I wanted to try again
> >> this cycle for the PCI pieces. I have been carrying it, rebasing it and
> >> personally using it for a while now though.
> >>
> >> This series attempts to unify the PCI suspend and hibernate paths and to
> >> fix some things that I observed to be wrong with how I expect hibernate
> >> to work.
> >>
> >> It is based off 7.1-rc1 + Lukas' patch:
> >> "PCI: Stop setting cached power state to "unknown" on unbind"
> >>
> >> Mario Limonciello (AMD) (5):
> >>    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
> >>
> >>   drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
> >>   1 file changed, 69 insertions(+), 34 deletions(-)
> >>
> >> --
> >
> > It would be good to CC this to linux-pm.
>
> Sure thing - if there is a need for a v2, I will include linux-pm in CC.

The thing is, you may not know if there's a need for a v2 without resending.
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Mario Limonciello 1 month, 2 weeks ago
On 4/27/26 10:09, Rafael J. Wysocki wrote:
> On Mon, Apr 27, 2026 at 4:14 PM Mario Limonciello <superm1@kernel.org> wrote:
>>
>> On 4/27/26 07:20, Rafael J. Wysocki wrote:
>>> On Mon, Apr 27, 2026 at 5:53 AM Mario Limonciello (AMD)
>>> <superm1@kernel.org> wrote:
>>>>
>>>> A few cycles ago I sent out a kernel series for using the S4 paths when
>>>> the system goes to S5.  Some parts of it got merged, and Rafael suggested
>>>> to split the other parts into smaller pieces across multiple kernel cycles
>>>> to make bisecting easier.
>>>>
>>>> This fell into my backlog behind other things, so I wanted to try again
>>>> this cycle for the PCI pieces. I have been carrying it, rebasing it and
>>>> personally using it for a while now though.
>>>>
>>>> This series attempts to unify the PCI suspend and hibernate paths and to
>>>> fix some things that I observed to be wrong with how I expect hibernate
>>>> to work.
>>>>
>>>> It is based off 7.1-rc1 + Lukas' patch:
>>>> "PCI: Stop setting cached power state to "unknown" on unbind"
>>>>
>>>> Mario Limonciello (AMD) (5):
>>>>     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
>>>>
>>>>    drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
>>>>    1 file changed, 69 insertions(+), 34 deletions(-)
>>>>
>>>> --
>>>
>>> It would be good to CC this to linux-pm.
>>
>> Sure thing - if there is a need for a v2, I will include linux-pm in CC.
> 
> The thing is, you may not know if there's a need for a v2 without resending.

I would think Lukas and Bjorn will at least have some comments and I 
want to give them some time before cluttering inboxes with a second copy 
of the series at the start of the dev cycle.

How about if it looks good to them as is I'll send a v2 with their tags 
added for linux-pm to get a chance to see and review as well.

And if they have feedback I'll incorporate and v2 will also go to linux-pm.
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
On Mon, Apr 27, 2026 at 5:19 PM Mario Limonciello <superm1@kernel.org> wrote:
>
> On 4/27/26 10:09, Rafael J. Wysocki wrote:
> > On Mon, Apr 27, 2026 at 4:14 PM Mario Limonciello <superm1@kernel.org> wrote:
> >>
> >> On 4/27/26 07:20, Rafael J. Wysocki wrote:
> >>> On Mon, Apr 27, 2026 at 5:53 AM Mario Limonciello (AMD)
> >>> <superm1@kernel.org> wrote:
> >>>>
> >>>> A few cycles ago I sent out a kernel series for using the S4 paths when
> >>>> the system goes to S5.  Some parts of it got merged, and Rafael suggested
> >>>> to split the other parts into smaller pieces across multiple kernel cycles
> >>>> to make bisecting easier.
> >>>>
> >>>> This fell into my backlog behind other things, so I wanted to try again
> >>>> this cycle for the PCI pieces. I have been carrying it, rebasing it and
> >>>> personally using it for a while now though.
> >>>>
> >>>> This series attempts to unify the PCI suspend and hibernate paths and to
> >>>> fix some things that I observed to be wrong with how I expect hibernate
> >>>> to work.
> >>>>
> >>>> It is based off 7.1-rc1 + Lukas' patch:
> >>>> "PCI: Stop setting cached power state to "unknown" on unbind"
> >>>>
> >>>> Mario Limonciello (AMD) (5):
> >>>>     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
> >>>>
> >>>>    drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
> >>>>    1 file changed, 69 insertions(+), 34 deletions(-)
> >>>>
> >>>> --
> >>>
> >>> It would be good to CC this to linux-pm.
> >>
> >> Sure thing - if there is a need for a v2, I will include linux-pm in CC.
> >
> > The thing is, you may not know if there's a need for a v2 without resending.
>
> I would think Lukas and Bjorn will at least have some comments and I
> want to give them some time before cluttering inboxes with a second copy
> of the series at the start of the dev cycle.

Fair enough.

> How about if it looks good to them as is I'll send a v2 with their tags
> added for linux-pm to get a chance to see and review as well.
>
> And if they have feedback I'll incorporate and v2 will also go to linux-pm.

That should work, thanks!
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Bjorn Helgaas 1 month, 2 weeks ago
On Sun, Apr 26, 2026 at 10:53:36PM -0500, Mario Limonciello (AMD) wrote:
> A few cycles ago I sent out a kernel series for using the S4 paths when
> the system goes to S5.  Some parts of it got merged, and Rafael suggested
> to split the other parts into smaller pieces across multiple kernel cycles
> to make bisecting easier.
> 
> This fell into my backlog behind other things, so I wanted to try again
> this cycle for the PCI pieces. I have been carrying it, rebasing it and
> personally using it for a while now though.
> 
> This series attempts to unify the PCI suspend and hibernate paths and to
> fix some things that I observed to be wrong with how I expect hibernate
> to work.
> 
> It is based off 7.1-rc1 + Lukas' patch:
> "PCI: Stop setting cached power state to "unknown" on unbind"

Hi Mario, would you mind posting a v2 that includes Lukas' patch, so
the whole series applies cleanly so Sashiko can go through it?

I already applied Lukas' patch on pci/pm, but I guess Sashiko can't
parse that dependency.

> Mario Limonciello (AMD) (5):
>   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
> 
>  drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
>  1 file changed, 69 insertions(+), 34 deletions(-)
> 
> -- 
> 2.43.0
>
Re: [PATCH 0/5] Improvements to PCI hibernate path
Posted by Mario Limonciello 1 month, 2 weeks ago
On 4/27/26 15:34, Bjorn Helgaas wrote:
> On Sun, Apr 26, 2026 at 10:53:36PM -0500, Mario Limonciello (AMD) wrote:
>> A few cycles ago I sent out a kernel series for using the S4 paths when
>> the system goes to S5.  Some parts of it got merged, and Rafael suggested
>> to split the other parts into smaller pieces across multiple kernel cycles
>> to make bisecting easier.
>>
>> This fell into my backlog behind other things, so I wanted to try again
>> this cycle for the PCI pieces. I have been carrying it, rebasing it and
>> personally using it for a while now though.
>>
>> This series attempts to unify the PCI suspend and hibernate paths and to
>> fix some things that I observed to be wrong with how I expect hibernate
>> to work.
>>
>> It is based off 7.1-rc1 + Lukas' patch:
>> "PCI: Stop setting cached power state to "unknown" on unbind"
> 
> Hi Mario, would you mind posting a v2 that includes Lukas' patch, so
> the whole series applies cleanly so Sashiko can go through it?
> 
> I already applied Lukas' patch on pci/pm, but I guess Sashiko can't
> parse that dependency.

Bjorn,

Sure.  I'll repost with his patch front-loaded.  I assume you'll just 
drop that when applying if/when everything else looks good right?

FWIW, I did run review-prompts offline on the series already with Claude 
models so hopefully no new surprises when it runs with Google's models :P

Thanks,

> 
>> Mario Limonciello (AMD) (5):
>>    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
>>
>>   drivers/pci/pci-driver.c | 103 ++++++++++++++++++++++++++-------------
>>   1 file changed, 69 insertions(+), 34 deletions(-)
>>
>> -- 
>> 2.43.0
>>