[realtek] Network Interface hangs

Simon Hartl SHARTL@osst.at
Fri Jan 3 13:48:02 2003


Hi,

I have a machine with 3 RTL8139C interfaces (two are onboard, one is in
a PCI slot) acting as router an have the following problem:
when the machine is under heavy load (generated with iperf) the network
interface on the client side hangs (with no entries in the syslog)

The driver has the version v1.22.

I've run the rtl8139-diag with the -am and the -eee option and have
found the following differences:

working:
  Receiver configuration: Normal unicast and hashed multicast
     Rx FIFO threshold 256 bytes, maximum burst 256 bytes, 32KB ring

after it hangs:
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring



The logfile (network related) when the system comes up:
--------------------------------------snip
--------------------------------------
rtl8139.c:v1.22 11/17/2002 Donald Becker, becker@scyld.com.
kernel:  http://www.scyld.com/network/rtl8139.html
kernel: eth0: RealTek RTL8139C Fast Ethernet at 0xc000, IRQ 11,
00:e0:7d:de:65:e5.
kernel: eth1: RealTek RTL8139C Fast Ethernet at 0xc400, IRQ 11,
00:30:18:77:11:e8.
kernel: eth2: RealTek RTL8139C Fast Ethernet at 0xc800, IRQ 10,
00:30:18:77:11:e7.
network: Bringing up interface eth0:  succeeded
router network: Bringing up interface eth1:  succeeded
-------------------------------------- snip
--------------------------------------

the output of rtl8139-diag (working interface)

--------------------------------------snip
--------------------------------------
rtl8139-diag.c:v2.10 9/18/2002 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xc000.
The RealTek chip appears to be active, so some registers will not be
read.
To see all register values use the '-f' flag.
RealTek chip registers at 0xc000
 0x000: de7de000 0000e565 80000000 00000000 0008a042 0008a5ea 0008a3fa
0008a042
 0x020: 1cdb8010 1cdb8610 1cdb8c10 1cdb9210 1cdb0000 0d0a0000 08600850
0000c07f
 0x040: 74400400 0000940e 0bd45e39 00000000 008f1000 00000000 0088c550
00100000
 0x060: 1100f00f 01e1782d 0001c181 00000000 00000704 000207c8 60f60c59
7b732660.
Realtek station address 00:e0:7d:de:65:e5, chip type 'rtl8139C'.
  Receiver configuration: Normal unicast and hashed multicast
     Rx FIFO threshold 256 bytes, maximum burst 256 bytes, 32KB ring
  Transmitter enabled with normal settings, maximum burst 256 bytes.
    Tx entry #0 status 0008a042 complete, 66 bytes.
    Tx entry #1 status 0008a5ea complete, 1514 bytes.
    Tx entry #2 status 0008a3fa complete, 1018 bytes.
    Tx entry #3 status 0008a042 complete, 66 bytes.
  Flow control: Tx disabled  Rx enabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0xc181.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
Index #2: Found a RealTek RTL8139 adapter at 0xc400.
The RealTek chip appears to be active, so some registers will not be
read.
To see all register values use the '-f' flag.
RealTek chip registers at 0xc400
 0x000: 77183000 0000e811 80000000 00000000 0008a042 0008a042 0008a042
0008a042
 0x020: 1cda8010 1cda8610 1cda8c10 1cda9210 1cda0000 0d0a0000 e904e8f4
0000c07f
 0x040: 74400400 0000940e 0bd473a9 00000000 008f1000 00000000 0088c550
00100000
 0x060: 1100f00f 01e1782d 0001c181 00000000 00000704 000007c8 60f60c59
7b732660.
Realtek station address 00:30:18:77:11:e8, chip type 'rtl8139C'.
  Receiver configuration: Normal unicast and hashed multicast
     Rx FIFO threshold 256 bytes, maximum burst 256 bytes, 32KB ring
  Transmitter enabled with normal settings, maximum burst 256 bytes.
    Tx entry #0 status 0008a042 complete, 66 bytes.
    Tx entry #1 status 0008a042 complete, 66 bytes.
    Tx entry #2 status 0008a042 complete, 66 bytes.
    Tx entry #3 status 0008a042 complete, 66 bytes.
  Flow control: Tx disabled  Rx enabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0xc181.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
Index #3: Found a RealTek RTL8139 adapter at 0xc800.
RealTek chip registers at 0xc800
 0x000: 77183000 0000e711 80000000 00000000 00002000 00002000 00002000
00002000
 0x020: 00002000 00002600 00002c00 00003200 00010000 01000000 0000fff0
00000000
 0x040: 74400000 00000000 0bd4863f 00000000 008f10c0 00000000 0088c51c
00100000
 0x060: 1000000f 01e17809 00000000 00000000 00000704 000003c0 60f60c59
7b732660.
Realtek station address 00:30:18:77:11:e7, chip type 'rtl8139C'.
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
  Transmitter disabled with normal settings, maximum burst 16 bytes.
    Tx entry #0 status 00002000 incomplete, 0 bytes.
    Tx entry #1 status 00002000 incomplete, 0 bytes.
    Tx entry #2 status 00002000 incomplete, 0 bytes.
    Tx entry #3 status 00002000 incomplete, 0 bytes.
  Flow control: Tx disabled  Rx disabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1000.
   Basic mode status register    0x7809.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0x0000.
   Autonegotiation expansion     0x0000.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
--------------------------------------snip
--------------------------------------

the output of rtl8139-diag (after the interface hangs)
--------------------------------------snip
--------------------------------------
rtl8139-diag.c:v2.10 9/18/2002 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xc000.
The RealTek chip appears to be active, so some registers will not be
read.
To see all register values use the '-f' flag.
RealTek chip registers at 0xc000
 0x000: de7de000 0000e565 80000000 00000000 0008a5ea 0008a5ea 0008a5ea
0008a5ea
 0x020: 1cdb8010 1cdb8610 1cdb8c10 1cdb9210 1cdb0000 0d0a0000 90e490d4
0000c07f
 0x040: 74400400 0000940e 6f902e9e 00000000 008f1000 00000000 0088c550
00100000
 0x060: 1100f00f 01e1782d 0001c181 00000000 00000704 000207c8 60f60c59
7b732660.
Realtek station address 00:e0:7d:de:65:e5, chip type 'rtl8139C'.
  Receiver configuration: Normal unicast and hashed multicast
     Rx FIFO threshold 256 bytes, maximum burst 256 bytes, 32KB ring
  Transmitter enabled with normal settings, maximum burst 256 bytes.
    Tx entry #0 status 0008a5ea complete, 1514 bytes.
    Tx entry #1 status 0008a5ea complete, 1514 bytes.
    Tx entry #2 status 0008a5ea complete, 1514 bytes.
    Tx entry #3 status 0008a5ea complete, 1514 bytes.
  Flow control: Tx disabled  Rx enabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0xc181.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
Index #2: Found a RealTek RTL8139 adapter at 0xc400.
The RealTek chip appears to be active, so some registers will not be
read.
To see all register values use the '-f' flag.
RealTek chip registers at 0xc400
 0x000: 77183000 0000e811 80000000 00000000 0008a042 0008a042 0008a042
0008a042
 0x020: 1cda8010 1cda8610 1cda8c10 1cda9210 1cda0000 0d000000 0000fff0
0000c07f
 0x040: 74400400 00000000 6f90441f 00000000 008f1000 00000000 0088c550
00100000
 0x060: 1100f00f 01e1782d 0001c181 00000000 00000704 000007c8 60f60c59
7b732660.
Realtek station address 00:30:18:77:11:e8, chip type 'rtl8139C'.
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
  Transmitter enabled with normal settings, maximum burst 256 bytes.
    Tx entry #0 status 0008a042 complete, 66 bytes.
    Tx entry #1 status 0008a042 complete, 66 bytes.
    Tx entry #2 status 0008a042 complete, 66 bytes.
    Tx entry #3 status 0008a042 complete, 66 bytes.
  Flow control: Tx disabled  Rx enabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0xc181.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
Index #3: Found a RealTek RTL8139 adapter at 0xc800.
RealTek chip registers at 0xc800
 0x000: 77183000 0000e711 80000000 00000000 00002000 00002000 00002000
00002000
 0x020: 00002000 00002600 00002c00 00003200 00010000 01000000 0000fff0
00000000
 0x040: 74400000 00000000 6f9056b2 00000000 008f1000 00000000 0088c51c
00100000
 0x060: 1000000f 01e17809 00000000 00000000 00000704 000003c0 60f60c59
7b732660.
Realtek station address 00:30:18:77:11:e7, chip type 'rtl8139C'.
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
  Transmitter disabled with normal settings, maximum burst 16 bytes.
    Tx entry #0 status 00002000 incomplete, 0 bytes.
    Tx entry #1 status 00002000 incomplete, 0 bytes.
    Tx entry #2 status 00002000 incomplete, 0 bytes.
    Tx entry #3 status 00002000 incomplete, 0 bytes.
  Flow control: Tx disabled  Rx disabled.
  The chip configuration is 0x10 0x8f, MII half-duplex mode.
  No interrupt sources are pending.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1000.
   Basic mode status register    0x7809.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0x0000.
   Autonegotiation expansion     0x0000.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
--------------------------------------snip
--------------------------------------


Can anybody help?

Thanks,

Simon