From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Zwoch Subject: e1000 -> 82540EM on linux 2.6.0-test[45] very slow in one direction Date: Fri, 19 Sep 2003 12:25:09 +0200 Sender: netdev-bounce@oss.sgi.com Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Return-path: To: netdev@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org hi, this has been discussed very roughly before. but unfortunately no real solution has been brought up so far (or i have not read it yet). problem in short: the 82540EM intel gigabit adapter became very slow as of 2.6.0-test4. maybe earlier versions were als affected aswell, but i noticed this behaviour on test4 and later. the 'slowness' of the adapter only affects a certain data direction. i performed the following tests to show you what is wrong. dummy data file was 34257856 bytes (34.3MB). test machines were a pentium4 with the intel adapter, and a pentium2 266 with a lowcost realtek card (runs linux 2.4). SCP: e1000 -> 8139too 28.6KB/s e1000 <- 8139too 4.6MB/s SMB: e1000 -> 8139too 3.0MB/s e1000 <- 8139too 3.3MB/s FTP e1000 -> 8139too 54KB/s e1000 <- 8139too 9.4MB/s as you can see reveiving data is no problem at all (maybe another protocol can create some problems in this case?). but sending data is awesome slow! exception is the samba protocol. why is that? i thought that samba may use udp instead of tcp. but iptraf did not show any udp packets going around so i guess i was wrong. the problem gets worse while trying to test things over the internet. scp stalls incredibly often on my 256kbit/s upstream. so does ftp and irc dcc protocol. irc dcc ends up with sending 0.3KB/s on a megabyte sized file. before people again trying to tell me that some duplex settings could be messed up - then tell me why this should happen. when i boot into 2.4 kernel with that test machine the nic works without problems. so IF duplex stuff is the reason for the hickups something must be wrong with the duplex detection code in the new driver/kernel? i tried vanilla 2.6.0-test5, 2.6.0-test5-mm2 and mm3 + 2.6.0-test5-bk4. none of these gave any difference regarding network performance. any suggestions or patches will be appreaciated. thanks! Florian Zwoch following some systeminfo: ethtool -i eth0 driver: e1000 version: 5.2.16-k1 firmware-version: N/A bus-info: 0000:02:0e.0 ethtool -d eth0 MAC Registers ------------- 0x00000: CTRL (Device control register) 0x18340249 Duplex: full Endian mode (buffers): little Link reset: reset Set link up: 1 Invert Loss-Of-Signal: no Receive flow control: enabled Transmit flow control: enabled VLAN mode: disabled Auto speed detect: disabled Speed select: 1000Mb/s Force speed: no Force duplex: no 0x00008: STATUS (Device status register) 0x0000C343 Duplex: full Link up: link config TBI mode: disabled Link speed: 100Mb/s 0x00100: RCTL (Receive control register) 0x00008002 Receiver: enabled Store bad packets: disabled Unicast promiscuous: disabled Multicast promiscuous: disabled Long packet: disabled Descriptor minimum threshold size: 1/2 Broadcast accept mode: accept VLAN filter: disabled Cononical form indicator: disabled Discard pause frames: filtered Pass MAC control frames: don't pass Receive buffer size: 2048 0x02808: RDLEN (Receive desc length) 0x00001000 0x02810: RDH (Receive desc head) 0x00000005 0x02818: RDT (Receive desc tail) 0x00000000 0x02820: RDTR (Receive delay timer) 0x00000000 0x00400: TCTL (Transmit ctrl register) 0x0004010A Transmitter: enabled Pad short packets: enabled Software XOFF Transmission: disabled Re-transmit on late collision: disabled 0x03808: TDLEN (Transmit desc length) 0x00001000 0x03810: TDH (Transmit desc head) 0x000000B4 0x03818: TDT (Transmit desc tail) 0x000000B4 0x03820: TIDV (Transmit delay timer) 0x00000040 pci -vvv 00:00.0 Host bridge: Intel Corp. 82850 850 (Tehama) Chipset Host Bridge (MCH) (rev 04) Subsystem: Asustek Computer, Inc.: Unknown device 8030 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- Reset- FastB2B- 00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB PCI Bridge (rev 04) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Reset- FastB2B- 00:1f.0 ISA bridge: Intel Corp. 82801BA ISA Bridge (LPC) (rev 04) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- [disabled] [size=128K] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=1 PME- Capabilities: [e4] PCI-X non-bridge device. Command: DPERE- ERO+ RBC=0 OST=0 Status: Bus=0 Dev=0 Func=0 64bit- 133MHz- SCD- USC-, DC=simple, DMMRBC=0, DMOST=0, DMCRS=0, RSCEM- Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000