Re: [PATCH] firmware: wake all waiters

From: Luis R. Rodriguez
Date: Wed Jun 28 2017 - 11:59:17 EST


On Wed, Jun 28, 2017 at 06:45:14AM -0700, Davidlohr Bueso wrote:
> On Tue, 27 Jun 2017, Luis R. Rodriguez wrote:
>
> > diff --git a/include/linux/swait.h b/include/linux/swait.h
> > index 4a4e180d0a35..14fcf23cece4 100644
> > --- a/include/linux/swait.h
> > +++ b/include/linux/swait.h
> > @@ -29,7 +29,10 @@
> > *
> > * As a side effect of this; the data structures are slimmer.
> > *
> > - * One would recommend using this wait queue where possible.
>
> So I think this was added due to the smaller footprint and fewer
> cycles that swait has compared to the traditional (bulkier)
> waitqueues. While probably not worth it, I guess we could offer
> super-simple waitqueues (sswait? :-) which do not have the rt caveats
> and uses a regular spinlock. The wakeup_all() call would not drop
> the lock upon every wakeup as we are stripping the waitqueue not
> for determinism, but for overhead. To mitigate this, we might
> also want to use wake_q for reduced hold q->lock hold times.
>
> But I don't think its worth yet another wait interface.
> Alternatively, it crossed my mind we could also have wakeup_all()
> use in the regular waitqueues, but I'd have to audit all the
> current users to make sure we could actually do this.

But this open-welcoming invite for swait then, should it go?

Luis