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

Rafael J. Wysocki
2010-05-26T22:03:15Z

On Wednesday 26 May 2010, Matthew Garrett wrote:
> 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.

I still think it would cause a loop-alike behavior between the user space
power manager and the kernel PM core to happen, because the power manager
will always have to check the user space counter after a failing suspend
attempt.

Rafael