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

Florian Mickler
2010-05-21T06:04:17Z

On Fri, 21 May 2010 00:18:43 +0200
"Rafael J. Wysocki" <rjw@sisk.pl> wrote:

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

But I don't think there is a problem with that. If the system is
'awake' (suspend blocked) and you hit it with forced 'mem', the system
_has_ to suspend. as that is what forced "mem" means. And if
opportunistic won the race you would _expect_ the machine to suspend
again after the wakeup (and this time for good).

But perhaps this only makes sense if you can specify different
wake-events for opportunistic and forced suspend.

This is probably some kind of bikeshed by now. I'm alright with the
status quo. For what it's worth (not much): You can add my Reviewed-By.

Cheers,
Flo