Re: [linux-pm] suspend blockers & Android integration

From: Alan Stern
Date: Mon Jun 07 2010 - 21:13:45 EST


On Mon, 7 Jun 2010, Arve Hjønnevåg wrote:

> > Remember that suspend takes place in several phases, the first of which
> > is to freeze tasks.  The phases can be controlled individually by the
> > process carrying out a suspend, and there's nothing to prevent you from
> > stopping after the freezer phase.  Devices won't get powered down, but
> > Android uses aggressive runtime power management for its devices
> > anyway.
> >
> > If you do this then the synchronization can be carried out entirely
> > from userspace, with no need for kernel modifications such as suspend
> > blockers. And since Android can reach essentially the same low-power
> > state from idle as from suspend, it appears that they really don't need
> > any kernel changes at all.
> >
>
> I don't think this is true. If you stop after the freezer phase you
> still need all the suspend blockers that are held until user-space
> consumes an event, otherwise it never gets consumed since user-space
> is frozen.

No. You don't need to hold any suspend blockers; you merely need to
unfreeze userspace. Once it is unfrozen, it will eventually consume
the wakeup event.

What you _do_ need to do is to prevent userspace from getting frozen
again too soon. That's the purpose of the list of "active" wakeup
sources. So long as the power manager believes a source is still
active, it won't freeze anything.

Alan Stern

--
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/