Re: [PATCH 1/8] PM: Opportunistic suspend support.

Matthew Garrett
2010-05-26T13:21:36Z

On Wed, May 26, 2010 at 02:57:45PM +0200, Peter Zijlstra wrote:

> I fail to see why. In both cases the woken userspace will contact a
> central governing task, either the kernel or the userspace suspend
> manager, and inform it there is work to be done, and please don't
> suspend now.

Thinking about this, you're right - we don't have to wait, but that does
result in another problem. Imagine we get two wakeup events
approximately simultaneously. In the kernel-level universe the kernel
knows when both have been handled. In the user-level universe, we may
have one task schedule, bump the count, handle the event, drop the count
and then we attempt a suspend again because the second event handler
hasn't had an opportunity to run yet. We'll then attempt a suspend and
immediately bounce back up. That's kind of wasteful, although it'd be
somewhat mitigated by checking that right at the top of suspend entry
and returning -EAGAIN or similar.

--
Matthew Garrett | mjg59@srcf.ucam.org