Messages in this thread |  | | Date | Tue, 16 Apr 96 00:47 BST | From | Jamie Lokier <> | Subject | Slow ethernet/NE2000 with all 1.3 kernels (1.2 is fine) |
| |
Dear all,
Where I work, all our PC ethernet cards are NE2000 clones of one sort or another. I know NE2000's aren't supposed to be the fastest cards around, but back in the days of 1.2 kernels, `tcpspray' was able to send about 900k/s to an SGI, and about 850k/s to another, identical Linux box. There was some variation between cards from different manufacturers (and versions), with some getting as low as 780k/s (ish). Naturally, speed varied according to phase of the moon, etc, but it seemed pretty good to me.
I installed 1.3.small-number (1.3.13, or something like that), and was disappointed to find that with the 900k/s card, the peak data rate was now more like 690k/s to the same machines. It has improved marginally to 700k/s (just now on 1.3.89), but this may be a statistical blip. As I said, phase of the moon, etc.
To summarise: 1.2.x kernels -> 900k/s TCP data transmission rate 1.3.x kernels -> 700k/s TCP data transmission rate
I would have brought it up sooner, but (a) 1.3 is a development kernel and the TCP code has been, er, developed a lot, and (b) majordomo kept dropping me from its lists. I assumed it was TCP that was the problem, and so everyone would notice and it would all get sorted out. But TCP has been worked on a lot and I haven't noticed anyone mention this, so maybe it's the NE2000 driver. Everyone seems to expect the NE2000 to be slow anyway, so maybe that's why nobody noticed. :-)
NFS read access is also slower by a similar factor, and that uses UDP though both go through that hairy IP stuff. I haven't noticed any noticable NFS read speed improvement since nfsiod arrived. Maybe the servers I'm using aren't very fast anyway (the SGI and other Linux boxes). NFS read cacheing is _really_ effective for those nfsroot-mounted Linux boxes around the office though. :-)
If someone tells me what to do, I am quite willing to do various tests to sort this out. One that springs to mind is to dump raw packets onto the ethernet as fast as possible, to see if it is the NE2000 driver transmission time, or either the packet receive time or TCP ack processing time. But someone will have to give me some hints on writing raw packets. Another is to try to get the 1.2.13 ne.c working with 1.3.
Cheers, -- Jamie Lokier
|  |