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

From: Matthew Garrett
Date: Thu May 27 2010 - 16:12:20 EST


On Thu, May 27, 2010 at 08:53:33PM +0100, Alan Cox wrote:
> On Thu, 27 May 2010 20:29:26 +0100
> Matthew Garrett <mjg59@xxxxxxxxxxxxx> wrote:
> > But wakeup events won't be delivered to STOPped processes, and there's
>
> Try the following
>
> cat <pipe
> kill -STOP catpid
>
> echo "wombats are cool" > pipe
> kill -CONT catpid
>
> it will echo "wombats are cool"
>
> The event was not lost.

Not lost, but not delivered. So you need your policy agent to send
SIGCONT when you receive any wakeup event, which either means proxying
all your network traffic through your policy agent or having some
mechanism for alerting the policy agent whenever you leave the deep idle
state.

> > also the race of an application being in the middle of handling a wakeup
> > event when you send it the signal.
>
> sigmask()

Doesn't help - I may be hit by the signal between the poll() unblocking
and me having the opportunity to call sigmask().

--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/