Messages in this thread | | | From | (Alan Cox) | Subject | Re: Today Linus redesigns the networking driver interface (was Re: tulip driver in ...) | Date | 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/
| |