Thread (1 message) 1 message, 1 author, 2009-02-27

Re: [RFD] Automatic suspend

From: Rafael J. Wysocki <hidden>
Date: 2009-02-27 20:54:01

On Friday 27 February 2009, Matthew Garrett wrote:
On Fri, Feb 27, 2009 at 03:22:39PM +0100, Rafael J. Wysocki wrote:
quoted
On Friday 27 February 2009, Pavel Machek wrote:
quoted
Wakelocks done right are single atomic_t... and if you set it to 0,
you just unblock "sleeper" thread or something. Zero polling and very
simple...
Except that you have to check all of the wakelocks periodically in a loop =>
polling.  So?
Why do you need to check them? If you're taking this approach you just 
have something like:

suspend_unblock() {
	if (atomc_dec_and_test(&suspend_lock))
		suspend();
}

and then check that the lock count is still 0 after device_suspend(). 
There's no need to poll.
I was talking about wakelocks as originally proposed.

Using a refcount along with per-driver and per-process flags (probably two
refcounts would be more efficient in fact) is the latest idea and I agree it
wouldn't require polling.  However, if you refer to that, please don't use the
name "wakelock". :-)

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help