Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1481793pxk; Fri, 18 Sep 2020 13:49:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxszdVMu9EXul5M+vNuL4F73Ky94asqRjHzfJ0CrJdOW9RPOrxsR6ZC9CqZ4BkOJXJXWTcu X-Received: by 2002:aa7:cf0e:: with SMTP id a14mr41093161edy.81.1600462181609; Fri, 18 Sep 2020 13:49:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600462181; cv=none; d=google.com; s=arc-20160816; b=p/SiPbfnOZ70C2OTGwWJZa0sDxd90fe1Vgpnqc/v/kBk8S793gBfsk93kT1OPwqnCx xHPmGnkBzY8E8ReGaKJEdTPfY89FIlJ7UdivslnHD/5Jm4i9sNjiDlyGIZ8bfChRPnqy E42XTIrryWB/4DtrsmM1XEaL2r/sSOCQTdUM5/YQN7Be0rXJ3C754Jd5Tvz3wpyurqJV wQik1chTM8MVvEPCj/KanklQcXmzCX2i1u3e05X9QOMOi3wuHpujCXZ6KJddsn8sLJKT aPiD2n2D3GZq2zPC0eLMulCyoKPtq8yxpDRMbgRedR6Rt/y72B58RoOsyEexkGCJY2x2 YswA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=cfURmZcvSHgTA44pJrpuVYVHRnaeomcOTW1L80Lq33U=; b=MUoF2wCvHzs6SfnG93655E76Z30/CCRnIAPix3y16xvJ0SfRSrWpQbwPF+eTIkrwul qr9NpyjQ/Hs2A7UdJuzkIoQH17rgpW+DifvLH7fhE+Pm2va0VfSpDjvDy0ZpMVk9Cp8v MtAk6TvcmGwNCcC1+HwughNOCqD+0Ir6JP9qJV4LERz7TQPHcGJNODsnPB4TVZbxDbcU UaZhZhAy57n4oVPqfAnV+u7Q47q1NBz8oJulLATZW5l5IeKYpdtKfogkG/AZtcKAnop8 rcmdz1WKFfPZ85rIOxCQk3RpOip/jC5OrW9jlWFHVzPtSbuSr0mgtt3AsBZPNPl9YbGP qWgw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id mb8si2881978ejb.518.2020.09.18.13.49.18; Fri, 18 Sep 2020 13:49:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726507AbgIRUsA (ORCPT + 99 others); Fri, 18 Sep 2020 16:48:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58058 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726205AbgIRUr7 (ORCPT ); Fri, 18 Sep 2020 16:47:59 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1253EC0613CF; Fri, 18 Sep 2020 13:47:58 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 15051158E637A; Fri, 18 Sep 2020 13:31:10 -0700 (PDT) Date: Fri, 18 Sep 2020 13:47:54 -0700 (PDT) Message-Id: <20200918.134754.204300318220602155.davem@davemloft.net> To: fruggeri@arista.com Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, xiyou.wangcong@gmail.com, ap420073@gmail.com, andriin@fb.com, edumazet@google.com, jiri@mellanox.com, ast@kernel.org, kuba@kernel.org Subject: Re: [PATCH v4] net: use exponential backoff in netdev_wait_allrefs From: David Miller In-Reply-To: <20200918201902.0931495C0649@us180.sjc.aristanetworks.com> References: <20200918201902.0931495C0649@us180.sjc.aristanetworks.com> X-Mailer: Mew version 6.8 on Emacs 27.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [2620:137:e000::1:9]); Fri, 18 Sep 2020 13:31:10 -0700 (PDT) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: fruggeri@arista.com (Francesco Ruggeri) Date: Fri, 18 Sep 2020 13:19:01 -0700 > The combination of aca_free_rcu, introduced in commit 2384d02520ff > ("net/ipv6: Add anycast addresses to a global hashtable"), and > fib6_info_destroy_rcu, introduced in commit 9b0a8da8c4c6 ("net/ipv6: > respect rcu grace period before freeing fib6_info"), can result in > an extra rcu grace period being needed when deleting an interface, > with the result that netdev_wait_allrefs ends up hitting the msleep(250), > which is considerably longer than the required grace period. > This can result in long delays when deleting a large number of interfaces, > and it can be observed with this script: ... > Time with this patch on a 5.4 kernel: > > real 0m7.704s > user 0m0.385s > sys 0m1.230s > > Time without this patch: > > real 0m31.522s > user 0m0.438s > sys 0m1.156s > > v2: use exponential backoff instead of trying to wake up > netdev_wait_allrefs. > v3: preserve reverse christmas tree ordering of local variables > v4: try an extra rcu_barrier before the backoff, plus some > cosmetic changes. > > Signed-off-by: Francesco Ruggeri Applied to net-next, thanks.