lkml.org 
[lkml]   [2011]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/3] PM: Limit race conditions between runtime PM and system sleep
On Tue, 28 Jun 2011, Rafael J. Wysocki wrote:

> On Tuesday, June 28, 2011, Ming Lei wrote:
> >
> > Hi Rafael,
> >
> > On Sun, 26 Jun 2011 00:56:31 +0200
> > "Rafael J. Wysocki" <rjw@sisk.pl> wrote:
> >
> > > Index: linux-2.6/Documentation/power/runtime_pm.txt
> > > ===================================================================
> > > --- linux-2.6.orig/Documentation/power/runtime_pm.txt
> > > +++ linux-2.6/Documentation/power/runtime_pm.txt
> > > @@ -567,6 +567,11 @@ this is:
> > > pm_runtime_set_active(dev);
> > > pm_runtime_enable(dev);
> > >
> > > +The PM core always increments the run-time usage counter before calling the
> > > +->suspend() callback and decrements it after calling the ->resume() callback.
> > > +Hence disabling run-time PM temporarily like this will not cause any run-time
> > > +suspend callbacks to be lost.
> >
> > Could you explain why the above is that "this will not cause any run-time suspend
> > callbacks to be lost"?
> >
> > Looks like it should be "this will not cause any run-time suspend callbacks to
> > be called", but not sure.
>
> You're right the wording is not perfect. The problem is that if it's done
> this way without incrementing the usage counter beforehand, the status may
> change to "suspended" right before the pm_runtime_set_active() and then the
> new status will not reflect the actual state of the device.
>
> So, it may be better to say "Hence disabling runtime PM temporarily like this
> will not cause the runtime PM status of the device to conflict with the actual
> device state".
>
> Alan, what do you think?

How about: "... will not cause any runtime suspend attempts to be
permanently lost. If the usage count goes to zero following the return
of the ->resume() callback, the ->runtime_idle() callback will be
invoked as usual."

Alan Stern



\
 
 \ /
  Last update: 2011-06-29 16:13    [W:0.061 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site