Re: [PATCH 1/8] PM: Add suspend block api.

Rafael J. Wysocki
2010-05-20T22:18:43Z

On Thursday 20 May 2010, Florian Mickler wrote:
> On Thu, 20 May 2010 11:11:11 +0200
> Florian Mickler <florian@mickler.org> wrote:
>
> > On Tue, 18 May 2010 15:11:11 +0200
> > Pavel Machek <pavel@ucw.cz> wrote:
> >
> > > On Thu 2010-05-13 21:11:06, Arve Hj??nnev??g wrote:
> > > > Adds /sys/power/policy that selects the behaviour of /sys/power/state.
> > > > After setting the policy to opportunistic, writes to /sys/power/state
> > > > become non-blocking requests that specify which suspend state to
> > > > enter
> > >
> > > Yeah, one file selects behavior of another file, and to read available
> > > states for opportunistic, you have to write to file first.
> > >
> > > I still don't like the interface.
> > >
> >
> > Actually, what would be a better interface?
> >
> > I wonder why it is not like this:

Because I think the "forced" and "opportunistic" suspend "modes" are mutually
exclusive in practice and the interface as proposed reflects that quite well.

> > /sys/power/state
> > no change, works with and without opportunistic suspend the
> > same. Ignores suspend blockers. Really no change. (From user
> > perspective)
> >
> > /sys/power/opportunistic
> > On / Off
> > While Off the opportunistic suspend is off.
> > While On, the opportunistic suspend is on and if there are no
> > suspend blockers the system goes to suspend.
> >
>
> I forgot, of course there needs to be another knob to implement the
> "on" behaviour in the opportunistic mode
>
> /sys/power/block_opportunistic_suspend
>
> There you have it. One file, one purpose.

That's getting messy IMHO.

In addition to that you get a nice race when the user writes "mem"
to /sys/power/state and opportunistic suspend happens at the same time.
If the latter wins the race, the system will suspend again immediately after
being woken up, which probably is not the result you'd like to get.

Thanks,
Rafael