Re: Today Linus redesigns the networking driver interface (was Re: tulip driver in ...)

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sat, 19 Sep 1998 20:57:15 +0100 (BST)


> No, you're right. My "fix" below just needs to be fixed to also do the
> NET_BH setting. I thought the network drivers pulled the send queue on
> their own, but looking closer it's obvious that they don't (and that they
> should not for locking issues).

There are actually very very good reasons they should in 2.3.x to do
with latency stuff. But net_bh() has to die in 2.3.x anyway, it takes too
long to get run and its not SMP friendly.

> > first send. To fix that requires putting in a dev->timeout handler for
> > each device. If you break that behaviour then the moment your queue is full
> > and you take a tx timeout you are dead.
>
> Eww. Ok, I see why it's not set. It looks like a bad design, but it's
> obvious we can't fix that for 2.2.

Its actually demonstrably broken for a few specific cases. If you have an
idea how to fix it for drivers that are aware it wants doing ASAP - Don
has been moving the tx timeout into seperate routines ready for this
change.

[consider a device with a 10 frame queue that gets entirely full of
retransmits. While this is statistically improbable Im sure a few of
the 'ifconfig down/up fixed it' reports are this very event]. Big windows
over 64K->256K sync devices are practically optimised to cause it

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/