Realtek 8139 problems

Attila Karpati karpati@cs.elte.hu
Wed Sep 15 23:18:08 1999


Hello,

We have some (>10) machines with realtek 8139 cards, 1 running at 100Mbps the others at 10Mbps.
All the cards running at 10Mbps have a common problem. After some use
(which depends on the network load, collision rate) they encounter transmit
timeouts, but do not recover from these errors properly, after the transmit
errors i get ping statistics like this:
64 bytes from 157.181.14.5: icmp_seq=0 ttl=64 time=3.7 ms
64 bytes from 157.181.14.5: icmp_seq=1 ttl=64 time=0.6 ms
64 bytes from 157.181.14.5: icmp_seq=2 ttl=64 time=3.3 ms
64 bytes from 157.181.14.5: icmp_seq=3 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=5 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=4 ttl=64 time=1000.7 ms
64 bytes from 157.181.14.5: icmp_seq=6 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=8 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=7 ttl=64 time=1000.9 ms
64 bytes from 157.181.14.5: icmp_seq=10 ttl=64 time=0.4 ms
64 bytes from 157.181.14.5: icmp_seq=9 ttl=64 time=1000.6 ms
64 bytes from 157.181.14.5: icmp_seq=11 ttl=64 time=415.0 ms
64 bytes from 157.181.14.5: icmp_seq=12 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=14 ttl=64 time=0.5 ms
64 bytes from 157.181.14.5: icmp_seq=13 ttl=64 time=1000.8 ms

Sometimes the hosts recover from this situation, sometimes only the reboot helps.
Here is what mii-diag says about the problem:
lab11 /root # ~karpati/bin.scripts/mii-diag -v --watch 
mii-diag.c:v1.05 2/17/99  Donald Becker (becker@cesdis.gsfc.nasa.gov)
Using the default interface 'eth0'.
 MII PHY #32 transceiver registers:
   1000 782d 0000 0000 05e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
   This transceiver is capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation complete.
 Your link partner is strange, status 0000.
 MII PHY #32 transceiver registers:
   1000 782d 0000 0000 05e1 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000.
 Basic mode control register 0x1000: Auto-negotiation enabled.
 Basic mode status register 0x782d ... 782d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation complete.
 This transceiver has no vendor identification.
 I'm advertising 05e1: Flow-control 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.
05:10:57.000  Baseline value of MII BMSR (basic mode status register) is 782d.

Some words about the software used:
 linux-2.0.36, compiled with gcc 2.7.2.3, rtl8139.c version 1.08a
and the hardware:
 lab11 /root # cat /proc/pci 
PCI devices found:
  Bus  0, device  11, function  0:
    VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
      Medium devsel.  IRQ 9.  Master Capable.  Latency=64.  Min Gnt=4.Max Lat=255.
      Non-prefetchable 32 bit memory at 0xe0000000.
  Bus  0, device  10, function  0:
    Ethernet controller: Realtek 8139 (rev 16).
      Medium devsel.  IRQ 10.  Master Capable.  Latency=64.  Min Gnt=32.Max Lat=64.
      I/O at 0x6800.
      Non-prefetchable 32 bit memory at 0xe4000000.
  Bus  0, device   7, function  2:
    USB Controller: VIA Technologies VT 82C586 Apollo USB (rev 2).
      Medium devsel.  IRQ 11.  Master Capable.  Latency=64.  
      I/O at 0x6400.
  Bus  0, device   7, function  1:
    IDE interface: VIA Technologies VT 82C586 Apollo IDE (rev 6).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0x6000.
  Bus  0, device   7, function  0:
    ISA bridge: VIA Technologies VT 82C586 Apollo ISA (rev 39).
      Medium devsel.  Master Capable.  No bursts.  
  Bus  0, device   0, function  0:
    Host bridge: VIA Technologies VT 82C585 Apollo VP1/VPX (rev 35).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  

lab11 /root # cat /proc/interrupts 
 0:    1466224   timer
 1:          2   keyboard
 2:          0   cascade
 4:          7 + serial
10:     303549   eth0
13:          1   math error
14:     155110 + ide0

lab11 /root # cat /proc/cpuinfo 
processor       : 0
cpu             : 586
model           : Pentium MMX
vendor_id       : GenuineIntel
stepping        : 3
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : yes
fpu             : yes
fpu_exception   : yes
cpuid           : yes
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 mmx
bogomips        : 399.77
lab11 /root # cat /proc/net/dev 
Inter-|   Receive                  |  Transmit
 face |packets errs drop fifo frame|packets errs drop fifo colls carrier
    lo:    372    0    0    0    0      372    0    0    0     0    0
  eth0: 187385    0    0    0    0   116928    5    0    0 24109    4

---------------------------------------------------------------------

I read the mailinig list archive and found the description of the same problem
many times, and a statement that with the driver 1.06 this problem did
not occur. I tried all the drivers from 1.04 to 1.08a, but the problem
remained.

The machines are connected to a HUB, not to a switch, maybe this is the
reason for the failure of the link partner negotiation?

Thanks for any help in advance.
Please cc to karpati@cs.elte.hu, i am not subscribed to the mailing list.

Bye,
 Attila Karpati


 | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
 |  body of the mail, include only the text:
 |   unsubscribe this-list-name youraddress@wherever.org
 | You will be unsubscribed as speedily as possible.