*very* sluggish at 100Mb/s but OK at 10Mb/s??

simonc@child.demon.co.uk simonc@child.demon.co.uk
Wed Dec 22 18:48:32 1999


An Intel RC440FX Pentium Pro server with onboard EtherExpressPro100B at eth1 (and also a ISA Pro10+ at eth0). RedHat 6.0, kernel 2.2.5-22, hub is an Intel 330 (330T? I think) which is auto 10/100. It is running a mainly NT network at mostly 100Mb/s, though a couple of 10Mb/s nics, and I have a feeling that the NT machines are not running full duplex - not sure whether this is controlled by the hub or by the settings on the individual machines?  

(BTW this server has onboard scsi, and I see in the archives of the list that this has been an issue in some cases).

I have added this linux server, and the performance of the 100B is atrocious!! I ftp'd a file from it at about 6kb/s! and uploading was much worse. In fact I haven't had a successful upload - trying today to upload a newer eepro100.o the upload never got beyond 2k completed before timing out.

I've installed the 1.09l module after downloading from the web page, but no better. It runs fine if I force 10Mb/s or 10Mb/s full duplex, but hopeless on 100Mb/s whether half or full. There follow the diagnostics, the first set are after installing the module with no options, and the second set are after forcing it to 10Mb/s with options=0x50 

Any suggestions folks? Thanks.


[root@ppro /root]# ./mii-diag eth1
Basic registers of MII PHY #1:  3100 786f 2000 5c01 01e1 40a1 0003 0000.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x786f ... 786f.
   Link status: established.
   *** Link Jabber! ***
 Your link partner advertised 40a1: 100baseTx 10baseT.
[root@ppro /root]# 
[root@ppro /root]# ./eepro-diag -ee -f
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
EEPROM contents:
    00: a000 82c9 d627 0000 0000 0101 4401 0000
  0x08: 6455 2022 0000 0000 0000 0000 0000 0000
      ...
  0x38: 0000 0000 0000 0000 0000 0000 0000 f851
 The EEPROM checksum is correct.
Intel EtherExpress Pro 10/100 EEPROM contents:
  Station address 00:A0:C9:82:27:D6.
  Receiver lock-up bug exists. (The driver work-around *is* implemented.)
  Board assembly 645520-034, Physical connectors present: RJ45
  Primary interface chip DP83840 PHY #1.
  Transceiver-specific setup is required for the DP83840 transceiver.
[root@ppro /root]# 
[root@ppro /root]# ./eepro-diag -f -aa
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
i82557 chip registers at 0xf800:
  00000000 00000000 00000000 00080002 14378462 00000000
  No interrupt sources are pending.
   The transmit unit state is 'Idle'.
   The receive unit state is 'Idle'.
  This status is unusual for an activated interface.
[root@ppro /root]# 
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
 MII PHY #1 transceiver registers:
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
i82557 chip registers at 0xf800:
  00000000 00000000 00000000 00080002 14378462 00000000
  No interrupt sources are pending.
   The transmit unit state is 'Idle'.
   The receive unit state is 'Idle'.
  This status is unusual for an activated interface.
[root@ppro /root]# ./eepro-diag -f -mm
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
 MII PHY #1 transceiver registers:
  3100 786f 2000 5c01 01e1 40a1 0001 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 ffff 0000 3ac2 0001 8462
  8020 0c01 0000 1800 a3b9 008f 6a05 001d.
 MII PHY #1 transceiver registers:
   3100 786f 2000 5c01 01e1 40a1 0001 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0003 0000 0003 0001 8462
   8020 0c21 0000 1800 a3b9 008e 5e05 001d.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x786f ... 786f.
   Link status: established.
  3100 786f 2000 5c01 01e1 40a1 0001 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 ffff 0000 3ac2 0001 8462
  8020 0c01 0000 1800 a3b9 008f 6a05 001d.
 MII PHY #1 transceiver registers:
   3100 786f 2000 5c01 01e1 40a1 0001 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0003 0000 0003 0001 8462
   8020 0c21 0000 1800 a3b9 008e 5e05 001d.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 Basic mode status register 0x786f ... 786f.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation complete.
   *** Link Jabber! ***
 Vendor ID is 08:00:17:--:--:--, model 0 rev. 1.
   Vendor/Part: National Semiconductor 83840A.
 I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 40a1: 100baseTx 10baseT.
   Negotiation  completed.
14:04:22.196  Baseline value of MII BMSR (basic mode status register) is 786f.

[locked here - CTRL-C to get out]

[root@ppro /root]# insmod eepro100 options=0x50

[root@ppro /root]# ./mii-diag eth1
Basic registers of MII PHY #1:  0100 784b 2000 5c01 01e1 0000 0000 0000.
 Basic mode control register 0x0100: Auto-negotiation disabled, with
 Speed fixed at 10 mbps, full-duplex.
 Basic mode status register 0x784b ... 784d.
   Link status: previously broken, but now reestablished.
   *** Link Jabber! ***
 Link partner information information is not exchanged when in fixed speed mode.
[root@ppro /root]# 

[root@ppro /root]# ./eepro-diag -f -aa
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
i82557 chip registers at 0xf800:
  00000000 00000000 00000000 00080002 1821784d 00000000
  No interrupt sources are pending.
   The transmit unit state is 'Idle'.
   The receive unit state is 'Idle'.
  This status is unusual for an activated interface.
[root@ppro /root]# 
[root@ppro /root]# ./eepro-diag -f -ee
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
EEPROM contents:
    00: a000 82c9 d627 0000 0000 0101 4401 0000
  0x08: 6455 2022 0000 0000 0000 0000 0000 0000
      ...
  0x38: 0000 0000 0000 0000 0000 0000 0000 f851
 The EEPROM checksum is correct.
Intel EtherExpress Pro 10/100 EEPROM contents:
  Station address 00:A0:C9:82:27:D6.
  Receiver lock-up bug exists. (The driver work-around *is* implemented.)
  Board assembly 645520-034, Physical connectors present: RJ45
  Primary interface chip DP83840 PHY #1.
  Transceiver-specific setup is required for the DP83840 transceiver.
[root@ppro /root]#

[sorry, looks like I've messed up the cut and paste a bit here, and I'm not near the machine...]

eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
 MII PHY #1 transceiver registers:
  0x38: 0000 0000 0000 0000 0000 0000 0000 f851
 The EEPROM checksum is correct.
Intel EtherExpress Pro 10/100 EEPROM contents:
  Station address 00:A0:C9:82:27:D6.
  Receiver lock-up bug exists. (The driver work-around *is* implemented.)
  Board assembly 645520-034, Physical connectors present: RJ45
  Primary interface chip DP83840 PHY #1.
  Transceiver-specific setup is required for the DP83840 transceiver.

[root@ppro /root]# ./eepro-diag -f -mm
eepro100-diag.c:v1.01 7/8/99 Donald Becker (becker@cesdis.gsfc.nasa.gov)
Index #1: Found a Intel 82557 EtherExpressPro100B adapter at 0xf800.
 MII PHY #1 transceiver registers:
  0100 784d 2000 5c01 01e1 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 ffff 0000 5396 0001 8462
  8020 08e1 0000 3000 a3b9 0080 8905 001d.
 MII PHY #1 transceiver registers:
   0100 784d 2000 5c01 01e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0001 8462
   8020 08e1 0000 3000 a3b9 0080 8905 001d.
 Basic mode control register 0x0100: Auto-negotiation disabled!
   Speed fixed at 10 mbps, full-duplex.
 Basic mode status register 0x784d ... 784d.
 0100 784d 2000 5c01 01e1 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 ffff 0000 5396 0001 8462
  8020 08e1 0000 3000 a3b9 0080 8905 001d.
 MII PHY #1 transceiver registers:
   0100 784d 2000 5c01 01e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0001 8462
   8020 08e1 0000 3000 a3b9 0080 8905 001d.
 Basic mode control register 0x0100: Auto-negotiation disabled!
   Speed fixed at 10 mbps, full-duplex.
 Basic mode status register 0x784d ... 784d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation not complete.
 Vendor ID is 08:00:17:--:--:--, model 0 rev. 1.
   Vendor/Part: National Semiconductor 83840A.
 I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 0000:.
   Negotiation did not complete.
14:10:26.000  Baseline value of MII BMSR (basic mode status register) is 784d.

[Lock here - CTRL-C to get out]

/var/log/messages with no options set

Dec 22 13:54:21 ppro kernel: eepro100.c:v1.09l 8/7/99 Donald Becker http://cesdi
s.gsfc.nasa.gov/linux/drivers/eepro100.html
Dec 22 13:54:21 ppro kernel: eth1: Intel PCI EtherExpress Pro100 at 0xc4839000,00:A0:C9:82:27:D6, IRQ 9.
Dec 22 13:54:21 ppro kernel:   Board assembly 645520-034, Physical connectors pr
esent: RJ45
Dec 22 13:54:21 ppro kernel:   Primary interface chip DP83840 PHY #1.
Dec 22 13:54:21 ppro kernel:   DP83840 specific setup, setting register 23 to 84
62.
Dec 22 13:54:21 ppro kernel:   General self-test: passed.
Dec 22 13:54:22 ppro inet: inetd startup succeeded
Dec 22 13:54:21 ppro kernel:   Serial sub-system self-test: passed.
Dec 22 13:54:21 ppro kernel:   Internal registers self-test: passed.

/var/log/messages with options 0x50

Dec 22 14:17:00 ppro kernel: eepro100.c:v1.09l 8/7/99 Donald Becker http://cesdi
s.gsfc.nasa.gov/linux/drivers/eepro100.html
Dec 22 14:17:00 ppro kernel: eth1: Intel PCI EtherExpress Pro100 at 0xc4839000,00:A0:C9:82:27:D6, IRQ 9.
Dec 22 14:17:00 ppro kernel:   Board assembly 645520-034, Physical connectors pr
esent: RJ45
Dec 22 14:17:00 ppro kernel:   Primary interface chip DP83840 PHY #1.
Dec 22 14:17:00 ppro kernel:   DP83840 specific setup, setting register 23 to 84
62.
Dec 22 14:17:01 ppro inet: inetd startup succeeded
Dec 22 14:17:00 ppro kernel:   Forcing 10Mbs full-duplex operation.
Dec 22 14:17:00 ppro kernel:   General self-test: passed.
Dec 22 14:17:00 ppro kernel:   Serial sub-system self-test: passed.
Dec 22 14:17:00 ppro kernel:   Internal registers self-test: passed.

-- 
Simon Child