Re: [linux-pm] calling runtime PM from system PM methods

From: Alan Stern
Date: Mon Jun 20 2011 - 10:39:43 EST


On Sun, 19 Jun 2011, Rafael J. Wysocki wrote:

> In the meantime I rethought the __pm_runtime_disable() part of my previous
> patch and I now think it's not necessary to complicate it any more. Of course,
> we need not check if runtime resume is pending in __device_suspend(), because
> we've done it already in dpm_prepare(), but the barrier part should better be
> done in there too.

Does this really make sense? What use is a barrier in dpm_prepare() if
runtime PM is allowed to continue functioning up to the
suspend callback?

As I see it, we never want a suspend or suspend_noirq callback to call
pm_runtime_suspend(). However it's okay for the suspend callback to
invoke pm_runtime_resume(), as long as this is all done in subsystem
code.

And in between the prepare and suspend callbacks, runtime PM should be
more or less fully functional, right? For most devices it will never
be triggered, because it has to run in process context and both
userspace and pm_wq are frozen. It may trigger for devices marked as
IRQ-safe, though.

Maybe the barrier should be moved into __device_suspend().

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/