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

mark gross
2010-06-01T13:46:55Z

On Mon, May 31, 2010 at 04:26:17PM -0700, mark gross wrote:
> On Mon, May 31, 2010 at 11:38:55PM +0200, Rafael J. Wysocki wrote:
> > On Monday 31 May 2010, Arve Hjønnevåg wrote:
> > > 2010/5/29 Alan Stern <stern@rowland.harvard.edu>:
> > > > On Sat, 29 May 2010, Arve Hjønnevåg wrote:
> > > >
> > > >> > In place of in-kernel suspend blockers, there will be a new type of QoS
> > > >> > constraint -- call it QOS_EVENTUALLY. It's a very weak constraint,
> > > >> > compatible with all cpuidle modes in which runnable threads are allowed
> > > >> > to run (which is all of them), but not compatible with suspend.
> > > >> >
> > > >> This sound just like another API rename. It will work, but given that
> > > >> suspend blockers was the name least objectionable last time around,
> > > >> I'm not sure what this would solve.
> > > >
> > > > It's not just a rename. By changing this into a QoS constraint, we
> > > > make it more generally useful. Instead of standing on its own, it
> > > > becomes part of the PM-QOS framework.
> > > >
> > >
> > > We cannot use the existing pm-qos framework. It is not safe to call
> > > from atomic context.
> >
> > We've just merged a patch that fixed that if I'm not mistaken. Mark, did your
> > PM QoS update fix that?
> >
>
> I'm pretty sure it can be called in atomic context, and if its not I'm
> sure we can fix that. It can be called in atomic context. I don't
> think it was ever a problem to call it in atomic context. The problem it
> had was that crappy list of string compares. Thats been fixed.
>

um, the notifiers that are currently used may not be cool in atomic
context :(

--mgross

> --mgross
>
> > > Also, it does not have any state constraints, so it iterates over every
> > > registered constraint each time one of them changes.
> >
> > That's fixable IMO.
> >
> > > Nor does is currently provide any stats for debugging.
> >
> > That's why Alan is proposing to add that.
> >
> > > The original wakelock patchset supported a wakelock type so it could
> > > be used to block more then suspend, but I had to remove this because
> > > it "overlapped" with pm-qos. So, yes I do consider this just another
> > > rename.
> >
> > It's an extension of an existing framework rather than an addition of a new
> > one, with entirely new API and so on. Extending existing APIs is much
> > preferred to adding new ones, in general.
> >
> > Rafael