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

Matthew Garrett
2010-05-28T14:06:01Z

On Fri, May 28, 2010 at 02:55:26PM +0100, Alan Cox wrote:

> The following cannot occur on my laptop for simple idling
>
> Alarm
> Suspend
>
> because the Alarm resets the suspend timer when it is delivered.

Userspace is about to write to /sys/power/state when it gets scheduled.
Alarm delivery occurs at that instant. Kernel has no idea that it's
about to go to sleep, so the driver handles things appropriately and
clears the hardware state. Userspace gets scheduled, writes and the
system suspends. The problem is that having userspace decidie to
initiate a suspend and then actually initiate a suspend isn't an atomic
operation.

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