Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8)

Matthew Garrett
2010-05-27T17:31:32Z

On Thu, May 27, 2010 at 07:24:02PM +0200, Thomas Gleixner wrote:

> Oh no. They paper over a short coming. If there is a pending event,
> the kernel knows that. It just does not make use of this
> information. Blockers just paper over this by sprinkling
> do_not_suspend() calls all over the place. What a sensible solution.

Even if we could use suspend-via-deep-idle-state on PCs, we still need
to be able to enter suspend while the system isn't idle. There's two
ways to do that:

1) Force the system to be idle. Doing this race-free is difficult.

2) Enter suspend even though the system isn't idle. Since we can't rely
on the scheduler, we need drivers to know whether userspace has consumed
all wakeup events before allowing the transition to occur. Doing so
requires either in-kernel suspend blockers or something that's almost
identical.

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