netdev
[Top] [All Lists]

Re: Poor gige performance with 2.4.20-pre*

To: Ben Greear <greearb@xxxxxxxxxxxxxxx>
Subject: Re: Poor gige performance with 2.4.20-pre*
From: Richard Gooch <rgooch@xxxxxxxxxxxxxxx>
Date: Sun, 29 Sep 2002 14:54:26 -0600
Cc: netdev@xxxxxxxxxxx
In-reply-to: <3D975556.5070706@xxxxxxxxxxxxxxx>
References: <200209282257.g8SMvta32527@xxxxxxxxxxxxxxxxxxxxxxxx> <3D966656.7040205@xxxxxxxxxxxxxxx> <200209291922.g8TJMA312403@xxxxxxxxxxxxxxxxxxxxxxxx> <3D975556.5070706@xxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
Ben Greear writes:
> Richard Gooch wrote:
> > Ben Greear writes:
> > 
> >>Richard Gooch wrote:
> >>
> >>>  Hi, all. For a while now I've noticed poor performance with gige
> >>>cards under 2.4.19 and 2.4.20-pre*. At first I thought it was because
> >>>of the cheap-ass Addtron cards I bought (these use the ns83820 chip).
> >>>But now that the Intel E1000 cards are pretty cheap too, I've grabbed
> >>>a couple (part number: PWLA8390MT) and see the same problem. In fact,
> >>>the E1000 cards are no better than the Addtron cards. I'm using the
> >>>D-Link DGS-1008T 8-port gige switch. MTU=1500 bytes.
> >>
> >>Try setting the TxDescriptors=4096 RxDescriptors=1024 when loading the
> >>e1000 module, that helps tremendously when using smaller packets.
> > 
> > Didn't help at all. Just to summarise, I've got:
> > options e1000 TxDescriptors=4096 RxDescriptors=1024
> > net.ipv4.tcp_rmem = 262144 262144 262144
> > net.ipv4.tcp_wmem = 262144 262144 262144
> > MTU=1500
> > 
> > I'm doing read(2)/write(2) to/from a user-space buffer over a TCP
> > socket with 256 KiB buffer size.
> > 
> > Is the E1000 supposed to have hardware interrupt mitigation (thus
> > avoiding the need for NAPI)?
> 
> NAPI did not greatly improve the performance I saw with larger packets,
> but it did help with smaller (say, 60 byte) packets.

My packets should be 1500 bytes, or close to it.

> One other thing I saw with TCP connections: They started off slow,
> but after a few seconds they were reacing their peak throughput.
> How long are you running your test?

I normally send 100 MB, so that's around 2 seconds or more. Sending
1 GB doesn't change anything (other than the test taking 20 seconds or
more).

Oh, BTW: some possibly relevant config options:
CONFIG_M686=y
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_HIGHIO=y
CONFIG_SMP=y
CONFIG_E1000=m

                                Regards,

                                        Richard....
Permanent: rgooch@xxxxxxxxxxxxx
Current:   rgooch@xxxxxxxxxxxxxxx


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