From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: [PATCH 2/4] swait: add the missing killable swaits Date: Thu, 29 Jun 2017 11:59:29 -0700 Message-ID: References: <20170614222017.14653-1-mcgrof@kernel.org> <20170614222017.14653-3-mcgrof@kernel.org> <20170629125402.GH26046@kroah.com> <20170629133530.GA14747@kroah.com> <20170629174046.GC3954@linux-80c1.suse> <20170629183339.GD3954@linux-80c1.suse> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: In-Reply-To: <20170629183339.GD3954-3dK4OQgjB4rH06JGZaSw0A@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Davidlohr Bueso Cc: Thomas Gleixner , Greg KH , "Luis R. Rodriguez" , mfuzzey-mB3Nsq4MPf1BDgjK7y7TUQ@public.gmane.org, "Eric W. Biederman" , Dmitry Torokhov , Daniel Wagner , David Woodhouse , jewalt-d4N2ExZK1jaSe5ORCPIMD9BPR1lH4CV8@public.gmane.org, rafal-g1n6cQUeyibVItvQsEIGlw@public.gmane.org, Arend Van Spriel , "Rafael J. Wysocki" , "Li, Yi" , atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Moritz Fischer , Petr Mladek , Johannes Berg , Emmanuel Grumbach , "Coelho, Luciano" , Kalle Valo , Andrew Lutomirski List-Id: linux-api@vger.kernel.org On Thu, Jun 29, 2017 at 11:33 AM, Davidlohr Bueso 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