Re: [markgross@thengar.org: [RFC] wake up notifications and suspendblocking (aka more wakelock stuff)]

From: NeilBrown
Date: Sat Oct 08 2011 - 07:15:17 EST


On Sun, 2 Oct 2011 09:44:56 -0700 mark gross <markgross@xxxxxxxxxxx> wrote:

> resending to wider list for discussion
> ----- Forwarded message from mark gross <markgross@xxxxxxxxxxx> -----
>
> Subject: [RFC] wake up notifications and suspend blocking (aka more wakelock stuff)
> Date: Tue, 20 Sep 2011 13:33:05 -0700
> From: mark gross <markgross@xxxxxxxxxxx>
> To: linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
> Reply-To: markgross@xxxxxxxxxxx
> Cc: arve@xxxxxxxxxxx, markgross@xxxxxxxxxxx, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>, amit.kucheria@xxxxxxxxxx, farrowg@xxxxxxxxxx, "Rafael J. Wysocki" <rjw@xxxxxxx>
>
> The following patch set implement an (untested) solution to the
> following problems.
>
> 1) a method for making a system unable to suspend for critical sections
> of time.

We already have this. A properly requested suspend (following wakeup_count
protocol) is unable to complete between wakeup_source_activate() and
wake_source_deactivate() - these delimit the critical sections.

What more than this do you need?

If user-space wants to prevent suspend, it just needs some sort of protocol
for talking to the user-space process which follows the correct protocol to
initiate suspend. That isn't a kernel problem.

>
> 2) providing a race free method for the acknowledgment of wake event
> processing before re-entry into suspend can happen.

Again, this is a user-space problem. It is user-space which requests
suspend. It shouldn't request it until it has checked that there are no wake
events that need processing - and should use the wakeup_count protocol to
avoid races with wakeup events happening after it has checked.

i.e. there is no kernel-space problem to solve here (except for possible
bugs).

NeilBrown

Attachment: signature.asc
Description: PGP signature