On Thu, Jun 29, 2017 at 11:33 AM, Davidlohr Bueso <dave@xxxxxxxxxxxx> wrote: > On Thu, 29 Jun 2017, Linus Torvalds wrote: > >> I actually think swait is pure garbage. Most users only wake up one >> process anyway, and using swait for that is stupid. If you only wake >> up one, you might as well just have a single process pointer, not a >> wait list at all, and then use "wake_up_process()". > > But you still need the notion of a queue, even if you wake one task > at a time... I'm probably missing your point here. The *reason* they wake up only one seems to be that there really is just one. It's some per-cpu idle thread for kvm, and for RCU it's the RCU workqueue thread. So the queue literally looks suspiciously pointless. But I might be wrong, and there can actually be multiple entries. If there are, I don't see why the wake-up-one semantics the code uses would be valid, though. Linus