Re: [PATCH] PM: Make it possible to avoid wakeup events from beinglost

From: Pavel Machek
Date: Fri Jul 02 2010 - 14:15:05 EST


On Thu 2010-07-01 21:02:27, Rafael J. Wysocki wrote:
> On Thursday, July 01, 2010, Pavel Machek wrote:
> > Hi!
> >
> > > @@ -114,3 +114,17 @@ Description:
> > > if this file contains "1", which is the default. It may be
> > > disabled by writing "0" to this file, in which case all devices
> > > will be suspended and resumed synchronously.
> > > +
> > > +What: /sys/power/wakeup_count
> > > +Date: July 2010
> > > +Contact: Rafael J. Wysocki <rjw@xxxxxxx>
> > > +Description:
> > > + The /sys/power/wakeup_count file allows user space to avoid
> > > + losing wakeup events when transitioning the system into a sleep
> > > + state. Reading from it returns the current number of registered
> > > + wakeup events and it blocks if some wakeup events are being
> > > + processed at the time the file is read from. Writing to it
> > > + will only succeed if the current number of wakeup events is
> > > + equal to the written value and, if successful, will make the
> > > + kernel abort a subsequent transition to a sleep state if any
> > > + wakeup events are reported after the write has returned.
> >
> > I assume that second suspend always succeeds?
>
> The mechanism is one-shot if that's what you're asking for.

Yep, it would be nice to document it.

Plus maybe... should there be way to clear the wakeup_count? For
example when userspace decides that battery is low and that it wants
to go to sleep now?

> > I can't say I quite like the way two sysfs files interact with each
> > other, but it is certainly better then wakelocks...
> >
> > Maybe we should create sys_suspend()?
>
> Well, one can modify pm-utils to use the new sysfs file quite easily, but it
> wouldn't be that easy with sys_suspend() IMO.

Well... small C helper should be easy...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
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/