Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753529AbdF2U6a (ORCPT ); Thu, 29 Jun 2017 16:58:30 -0400 Received: from mail-pf0-f172.google.com ([209.85.192.172]:34079 "EHLO mail-pf0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753489AbdF2U61 (ORCPT ); Thu, 29 Jun 2017 16:58:27 -0400 Date: Thu, 29 Jun 2017 13:58:22 -0700 From: Jakub Kicinski To: "Luis R. Rodriguez" Cc: nbroeking@me.com, Linus Torvalds , Davidlohr Bueso , Thomas Gleixner , Greg KH , mfuzzey@parkeon.com, "Eric W. Biederman" , Dmitry Torokhov , Daniel Wagner , David Woodhouse , jewalt@lgsinnovations.com, rafal@milecki.pl, Arend Van Spriel , "Rafael J. Wysocki" , "Li, Yi" , atull@kernel.org, Moritz Fischer , Petr Mladek , Johannes Berg , Emmanuel Grumbach , "Coelho, Luciano" , Kalle Valo , Andrew Lutomirski , Kees Cook , "AKASHI, Takahiro" , David Howells , Peter Jones , Hans de Goede , Alan Cox , "Theodore Ts'o" , Michael Kerrisk , Paul Gortmaker , Marcelo Tosatti , Matthew Wilcox , Linux API , linux-fsdevel , Linux Kernel Mailing List , "stable # 4 . 6" Subject: Re: [PATCH 2/4] swait: add the missing killable swaits Message-ID: <20170629135822.366fd67a@cakuba.netronome.com> In-Reply-To: <20170629194455.GR21846@wotan.suse.de> References: <20170629125402.GH26046@kroah.com> <20170629133530.GA14747@kroah.com> <20170629174046.GC3954@linux-80c1.suse> <20170629183339.GD3954@linux-80c1.suse> <20170629194015.GQ21846@wotan.suse.de> <20170629194455.GR21846@wotan.suse.de> Organization: Netronome Systems, Ltd. MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1751 Lines: 35 On Thu, 29 Jun 2017 21:44:55 +0200, Luis R. Rodriguez wrote: > On Thu, Jun 29, 2017 at 09:40:15PM +0200, Luis R. Rodriguez wrote: > > On Thu, Jun 29, 2017 at 11:59:29AM -0700, Linus Torvalds wrote: > > > 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. > > > > Since this swake_up() --> swake_up_all() reportedly *fixed* the one wake up > > issue it would seem this does queue [0]. That said, I don't see any simple tests > > tools/testing/selftests/swait but then again we don't have test for regular > > waits either... > > > > [0] https://bugzilla.kernel.org/show_bug.cgi?id=195477 > > I should also note that the swake_up_all() should have only helped in cases where > 3 cards were used, as if only 2 were used that should have been covered by just > the swake_up(). Unless of course I hear otherwise by the reporter, Nicolas or > from Jakub. I was hitting this with 2 cards.