From patchwork Wed Aug 31 09:31:58 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 112484 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 D69ACB6F7B for ; Wed, 31 Aug 2011 19:32:21 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755058Ab1HaJcB (ORCPT ); Wed, 31 Aug 2011 05:32:01 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:64332 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751218Ab1HaJb7 (ORCPT ); Wed, 31 Aug 2011 05:31:59 -0400 Received: by mail-bw0-f46.google.com with SMTP id 11so629784bke.19 for ; Wed, 31 Aug 2011 02:31:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; bh=cS43kHKUvLSPWbYd89+2clQrxQyMiQDOkBnjq6qeruU=; b=pqUBnu+TgrRKEjPV5nd7aU0wjnztUuZP1DW244n/+p9/yRxU4YFTWjB1kznd/MzKqD k59y2WZhBK304YBr+gh0fJMs++mBcPp6Ar0RZa/1nK71xZAghhpZ+HiiGaFVlrVRNS6m 3m4Mf9NAzd+EBsW/IoaFijGpUpYiI7pU1g9AY= Received: by 10.204.128.139 with SMTP id k11mr131401bks.27.1314783118688; Wed, 31 Aug 2011 02:31:58 -0700 (PDT) Received: from [10.150.51.218] (gw0.net.jmsp.net [212.23.165.14]) by mx.google.com with ESMTPS id v27sm95505bkt.15.2011.08.31.02.31.56 (version=SSLv3 cipher=OTHER); Wed, 31 Aug 2011 02:31:57 -0700 (PDT) Subject: [PATCH net-next] net: linkwatch: allow vlans to get carrier changes faster From: Eric Dumazet To: HAYASAKA Mitsuo Cc: Herbert Xu , Stephen Hemminger , Patrick McHardy , "David S. Miller" , =?UTF-8?Q?Micha=C5=82Miros=C5=82aw?= , Tom Herbert , Jesse Gross , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, yrl.pp-manager.tt@hitachi.com In-Reply-To: <1314540589.3036.12.camel@edumazet-laptop> References: <20110826060257.5304.62723.stgit@ltc219.sdl.hitachi.co.jp> <20110825230859.11b2b132@nehalam.ftrdhcpuser.net> <20110826064553.GA5874@gondor.apana.org.au> <4E5A40A9.2000404@hitachi.com> <1314540589.3036.12.camel@edumazet-laptop> Date: Wed, 31 Aug 2011 11:31:58 +0200 Message-ID: <1314783118.2801.13.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> Mime-Version: 1.0 X-Mailer: Evolution 2.32.2 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There is a time-lag of IFF_RUNNING flag consistency between vlan and real devices when the real devices are in problem such as link or cable broken. This leads to a degradation of Availability such as a delay of failover in HA systems using vlan since the detection of the problem at real device is delayed. We can avoid the linkwatch delay (~1 sec) for devices linked to another ones, since delay is already done for the realdev. Based on a previous patch from Mitsuo Hayasaka Reported-by: Mitsuo Hayasaka Signed-off-by: Eric Dumazet Cc: Herbert Xu Cc: Patrick McHardy Cc: "Michał Mirosław" Cc: Tom Herbert Cc: Stephen Hemminger Cc: Jesse Gross Tested-by: Mitsuo Hayasaka --- net/core/link_watch.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/core/link_watch.c b/net/core/link_watch.c index 357bd4e..c3519c6 100644 --- a/net/core/link_watch.c +++ b/net/core/link_watch.c @@ -78,8 +78,13 @@ static void rfc2863_policy(struct net_device *dev) static bool linkwatch_urgent_event(struct net_device *dev) { - return netif_running(dev) && netif_carrier_ok(dev) && - qdisc_tx_changing(dev); + if (!netif_running(dev)) + return false; + + if (dev->ifindex != dev->iflink) + return true; + + return netif_carrier_ok(dev) && qdisc_tx_changing(dev); }