From patchwork Sat Nov 12 00:55:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 694005 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tFyyN2h3Tz9t1P for ; Sat, 12 Nov 2016 11:55:55 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JZGZ1sBF"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965794AbcKLAze (ORCPT ); Fri, 11 Nov 2016 19:55:34 -0500 Received: from mail-it0-f49.google.com ([209.85.214.49]:35051 "EHLO mail-it0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933797AbcKLAzd (ORCPT ); Fri, 11 Nov 2016 19:55:33 -0500 Received: by mail-it0-f49.google.com with SMTP id e187so8845376itc.0; Fri, 11 Nov 2016 16:55:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=1omjbmHbgcni3Q4Hglqxd32yW/JR/++jZeCcPYPbmqs=; b=JZGZ1sBF7bSha9INRctQUDy2jd9SpqK1wdZgRZPRbJPV47jT235sj08BuxeQDfHUCx v5Q6cIAA83GeTZfHIUEf1qQoJZmeWjd8cByLJDjR8J+7LaxVSaXDWP029N8GBmLxXGMI Xv7cAboKIeFi3hgYhtMi3DFVdBgrsZBMoGtB9BmNfnLsPzNTCimBWTiHFTedRhEziS08 x55NBcAzYYJHagS075eb+qzYu0qnwA5q/QsXYygiPpy6gxEWU4dPp/DECAxVXx3JBwZu Oar7ZJhCx2t+abPx7bK5oCnvYyhdAPJm8Iljz1sgcVBINCb21h9guUtI9+kZ9sy/YmbR ZbtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1omjbmHbgcni3Q4Hglqxd32yW/JR/++jZeCcPYPbmqs=; b=fndiTNvtWYksE3nm/X/+1XB0SoWpoK9a908GyQ7Gj0/U8qesvRmpC7irFn97VZlKiQ v8QEzGT12d9FhS8WTQUrXfcOBbULPNjVGZ6WGm6Q87Mm2wGzZEEtmtWYlHC4gW+hByLT t0jKi/FhWUz+7/2azdo/1MMjZ+ATI2iO+h1IVKCxwzTvHIhhg2Kw65ZdL9MJcHG2OMRn XB1abM6b7BwP7nDOzlWuD39YGlVfbOSSU4wIw+Zwx4Ni/v1SyXJNFPZDTq8er3kNyVYJ vVFCwjhhWceejWTk3imvrYIFiQ4c0cEWjW1MXL7gCCrS/xzX5ogDssBd7vEftVn8htkV Q6DQ== X-Gm-Message-State: ABUngvemqPLvyAplMs8vroKSbWLT4wA6Q/ENBllUXzwqV/+gUK2NFhuc2KWbbvST8dgIfFQopB+QbXcF0lgDUg== X-Received: by 10.36.37.140 with SMTP id g134mr465618itg.30.1478912132146; Fri, 11 Nov 2016 16:55:32 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.205.142 with HTTP; Fri, 11 Nov 2016 16:55:11 -0800 (PST) In-Reply-To: <20161112002347.GL4127@linux.vnet.ibm.com> References: <20161110212404.GB4127@linux.vnet.ibm.com> <20161112002347.GL4127@linux.vnet.ibm.com> From: Cong Wang Date: Fri, 11 Nov 2016 16:55:11 -0800 Message-ID: Subject: Re: Long delays creating a netns after deleting one (possibly RCU related) To: "Paul E. McKenney" Cc: Rolf Neugebauer , LKML , Linux Kernel Network Developers , Justin Cormack , Ian Campbell Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, Nov 11, 2016 at 4:23 PM, Paul E. McKenney wrote: > > Ah! This net_mutex is different than RTNL. Should synchronize_net() be > modified to check for net_mutex being held in addition to the current > checks for RTNL being held? > Good point! Like commit be3fc413da9eb17cce0991f214ab0, checking for net_mutex for this case seems to be an optimization, I assume synchronize_rcu_expedited() and synchronize_rcu() have the same behavior... diff --git a/net/core/dev.c b/net/core/dev.c index eaad4c2..3415b6b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7762,7 +7762,7 @@ EXPORT_SYMBOL(free_netdev); void synchronize_net(void) { might_sleep(); - if (rtnl_is_locked()) + if (rtnl_is_locked() || lockdep_is_held(&net_mutex)) synchronize_rcu_expedited(); else synchronize_rcu();