Message ID | 1314783118.2801.13.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Hi Eric, I checked this patch solves the time-lag of IFF_RUNNING flag consistency between vlan and real devices. Cheers. Tested-by: Mitsuo Hayasaka <mitsuo.hayasaka.hu@hitachi.com> (2011/08/31 18:31), Eric Dumazet wrote: > 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 <mitsuo.hayasaka.hu@hitachi.com> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > Cc: Herbert Xu <herbert@gondor.apana.org.au> > Cc: Patrick McHardy <kaber@trash.net> > Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl> > Cc: Tom Herbert <therbert@google.com> > Cc: Stephen Hemminger <shemminger@vyatta.com> > Cc: Jesse Gross <jesse@nicira.com> > --- > net/core/link_watch.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > 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); > } > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- 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
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Wed, 31 Aug 2011 11:31:58 +0200 > 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 <mitsuo.hayasaka.hu@hitachi.com> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Applied. -- 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); }
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 <mitsuo.hayasaka.hu@hitachi.com> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Patrick McHardy <kaber@trash.net> Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl> Cc: Tom Herbert <therbert@google.com> Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Jesse Gross <jesse@nicira.com> --- 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