Re: Question about expected behavior when PM runtime is disabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 10 Jun 2011, Kenneth Heitke wrote:

> Hi Rafael,
> 
> Sorry if this question has been raised before.  I actually have two 
> questions here.  These questions are related to PM runtime being 
> disabled at runtime (i.e. call to pm_runtime_disable() )
> 
> If I call pm_runtime_enabled() to first determine if PM runtime is 
> enabled followed conditionally by a call to pm_runtime_get_sync(), it 
> would be possible for PM runtime to be disabled between these two calls 
> and the get_sync() will fail.  Is there any reason to even use the 
> enabled() call?

As a general rule, a device won't be enabled or disabled for runtime PM 
unless its driver or subsystem enables or disables it.  Since you 
should already know what the driver and subsystem are doing, there 
usually isn't any reason for using pm_runtime_enabled().

>  My goal here was to use the enabled() call to determine 
> if PM runtime was configured/enabled in the kernel and then to manage my 
> resources, clocks etc, in a different way if PM runtime is not present.

If runtime PM isn't present, why do you want to manage your clocks etc.  
at all?  The fact that it's not in the kernel means the system manager
doesn't care about power usage.

> My second question then is what if PM runtime is enabled in the kernel 
> and then gets disabled at runtime.  What is the expected behavior for a 
> driver?  Should it fail all requests with EGAIN until PM runtime is 
> enabled again? (in suspend state, PM runtime gets disable, new i/o 
> request is made, power and clocks need to be turned on).

It's up to the driver and the subsystem, since they are the entities 
that are responsible for disabling runtime PM.  If you think disabling 
runtime PM will cause problems, then don't do it.

> What about delayed autosuspend?  I believe that if PM runtime is 
> disabled while there is a delayed autosuspend pending, the suspend will 
> fail without notification (clocks and power will be left on).

That's right.

>  Will PM 
> runtime still be in the idle state once PM runtime is re-enabled?

The device will be in the same state as it was when it was disabled, 
unless you explicitly call pm_runtime_set_active() or 
pm_runtime_set_suspended().

Alan Stern

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux