Re: [PATCH RFC v2 1/1] scsi: pm: Leave runtime PM status alone during system resume/thaw/restore

From: Alan Stern
Date: Sat Nov 21 2020 - 12:34:32 EST


On Sat, Nov 21, 2020 at 09:00:02AM -0800, Bart Van Assche wrote:
> On 11/20/20 8:35 AM, Alan Stern wrote:
> > On Fri, Nov 20, 2020 at 12:37:22AM -0800, Can Guo wrote:
> >> Runtime resume is handled by runtime PM framework, no need to forcibly
> >> set runtime PM status to RPM_ACTIVE during system resume/thaw/restore.
> >
> > Sorry, I don't understand this explanation at all.
> >
> > Sure, runtime resume is handled by the runtime PM framework. But this
> > patch changes the code for system resume, which is completely different.
> >
> > Following a system resume, the hardware will be at full power. We don't
> > want the kernel to think that the device is still in runtime suspend;
> > otherwise is would never put the device back into low-power mode.
>
> Hi Alan,
>
> Does this mean that every driver needs similar code for handling runtime
> suspended devices upon system resume? If so, would it be possible to
> move that code into the power management core (drivers/base/power)?

That's a complicated story.

In short, many drivers need to do this, but not all. There is a complex
collection of settings available for subsystems or drivers that would
like their devices to remain in runtime system across a system sleep.

For the subsystems/drivers that don't care to deal with this complexity
or don't have any special requirements -- yes, they all need to include
code like this in their system-resume paths.

I had a very long discussion with Rafael Wysocki about all this starting
last March; you can find the relevant emails beginning roughly here:

https://marc.info/?l=linux-pm&m=158516934924947&w=2

and continuing through a few different threads.

Rafael ended up making a large number of changes to the PM core and API
to simplify things, straighten them out, and improve the documentation.
But we never did try to add this automatic set-runtime-active thing into
the core. Probably we wanted all the other changes to settle down
before trying to do it, and then just forgot about it. In fact, I'm not
certain that it is possible now, but we should look into it.

Alan Stern