netdev
[Top] [All Lists]

Re: [PATCH] net: Disable queueing when carrier is lost

To: tommy.christensen@xxxxxxxxx (Tommy Christensen)
Subject: Re: [PATCH] net: Disable queueing when carrier is lost
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 27 Apr 2005 22:43:13 +1000
Cc: davem@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <426EB84C.90307@xxxxxxxxx>
Organization: Core
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: tin/1.7.4-20040225 ("Benbecula") (UNIX) (Linux/2.4.27-hx-1-686-smp (i686))
Tommy Christensen <tommy.christensen@xxxxxxxxx> wrote:
> 
> A while back we had a very long thread about the queueing behavior of
> netdevices in a loss-of-carrier situation. This thread had the poetic
> subject: [patch 4/10] s390: network driver.

I remember that thread :) Thanks for chasing this up.

> The executive summary:

Agreed.

> The best solution seems to be to simply disable the queueing at the qdisc
> layer when this situation arises. That approach has been implemented in
> the patch below. Hasso Tepper <hasso@xxxxxxxxx> reports succesfull testing
> of the patch with Quagga.

The idea is good.  However, the implementation has a problem in it.
You're relying on the watchdog which may not be there.  The watchdog
is only present if tx_timeout is defined.

Also, this still doesn't help us if the driver itself has a TX queue
that is hoarding the packets.  So the driver itself needs to make sure
that when the carrier goes off that its TX queue is flushed too.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

<Prev in Thread] Current Thread [Next in Thread>