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

From: Tony Lindgren
Date: Thu May 13 2010 - 15:17:51 EST


* Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> [100513 07:11]:
> On Wed, 12 May 2010, Paul Walmsley wrote:
>
> > Hello,
> >
> > Some general comments on the suspend blockers/wakelock/opportunistic
> > suspend v6 patch series, posted here:
> >
> > https://lists.linux-foundation.org/pipermail/linux-pm/2010-April/025146.html
> >
> > The comments below are somewhat telegraphic in the interests of
> > readability - more specific comments to follow in later E-mails. I am
> > indebted to those of us who discussed these issues at LPC last year and
> > ELC this year for several stimulating discussions.
> >
> > There are several general problems with the design of opportunistic
> > suspend and suspend-blocks.
> >
> > 1. The opportunistic suspend code bypasses existing Linux kernel code,
> > such as timers and the scheduler, that indicates when code
> > needs to run, and when the system is idle.
>
> Whoa! That's not my understanding at all.
>
> As I see it, opportunistic suspend doesn't bypass any code that isn't
> already bypassed by the existing suspend code. Users can do
>
> echo mem >/sys/power/state
>
> whenever they want, without regard to kernel timers and the scheduler
> (other than the fact that the user's thread must be running in order to
> carry out the write, of course).

The difference between echo mem > /sys/power/state and suspend blocks
is that with suspend blocks the system keeps running. And that's why
it should be handled by runtime power management instead.

The suspend blocks seems like a hack to spam filter good and bad
apps from timer usage point of view. Applications are categorized
as good or bad depending if they grab a susped blocker or not.

I believe categorizing the apps should be instead done with some
timer flags or cgroups instead.

Cheers,

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