Re: [PATCH 2/4] swait: add the missing killable swaits

From: Davidlohr Bueso
Date: Thu Jun 29 2017 - 13:41:16 EST


On Thu, 29 Jun 2017, Linus Torvalds wrote:

Well, I'd actually say it the other way around: swait should not be
used in general, only in _very_ particular pieces of code that
actually explicitly need the odd swait semantics.

swait uses special locking and has odd semantics that are not at all
the same as the default wait queue ones. It should not be used without
very strong reasons (and honestly, the only strong enough reason seems
to be "RT").

The special locking means that swait doesn't do DEBUG_LOCK_ALLOC, but
it also means that it doesn't even work in all contexts.

So "swake_up()" does surprising things (only wake up one - that's what
caused a firmware loading bug), and "swake_up_all()" has magic rules
about interrupt disabling.

The thing is simply a collection of small hacks and should NOT be used
in general.

For all the above, what do you think of my 'sswait' proposal?

Thanks,
Davidlohr