swait: strengthen language to discourage use
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 19:01:15 +0000 (12:01 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 19:01:15 +0000 (12:01 -0700)
commitc5e7a7ea22d5677f7c70028908372cff6948ecdc
tree26c0d5f266619ecaf059606dc965c40433d02a02
parenta31895ad7f9d3348133e7da19e46bc74a2833aef
swait: strengthen language to discourage use

We already earlier discouraged people from using this interface in
commit 88796e7e5c45 ("sched/swait: Document it clearly that the swait
facilities are special and shouldn't be used"), but I just got a pull
request with a new broken user.

So make the comment *really* clear.

The swait interfaces are bad, and should not be used unless you have
some *very* strong reasons that include tons of hard performance numbers
on just why you want to use them, and you show that you actually
understand that they aren't at all like the normal wait/wakeup
interfaces.

So far, every single user has been suspect.  The main user is KVM, which
is completely pointless (there is only ever one waiter, which avoids the
interface subtleties, but also means that having a queue instead of a
pointer is counter-productive and certainly not an "optimization").

So make the comments much stronger.

Not that anybody likely reads them anyway, but there's always some
slight hope that it will cause somebody to think twice.

I'd like to remove this interface entirely, but there is the theoretical
possibility that it's actually the right thing to use in some situation,
most likely some deep RT use.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/swait.h