[realtek] SMC1211 Freeze, asking again ...

Sean Mullen mullens@attbi.com
Sun Oct 13 03:17:00 2002

   I asked about this a while ago and still have not found a solution (The
original posted reply is below, from August).  I'm running Mandrake 8 with a
kernel upgrade to 2.4.18 and rtl8139 driver version 1.20.  I have 2 SMC 1211
cards.  The linux box acts as a firewall with 2 windows 2000 PCs connected
on the inside of the firewall.  The Linux box is an AMD K63 400Mhz.

   I can use the internet with no issues, I can transfer data from the
windows PCs to the Linux box with no problems.  I can also transfer data
between the windows boxes with no problems.  The problem occurs when I
transfer data from the linux box to the windows box(es).

   When transferring data from the linux box to the windows box, the
interface will occasionally lock.  The only way I can restore connectivity
is by restarting eth1 (the inside facing rtl8139) with ifdown/ifup.  This
happens with samba, ftp, http, and even ssh.  The problem occurs more often
when transferring larger amounts of data through FTP or Samba.

   When I posted before, Donald noted that there is a reported a transmit
underrun.  I'm getting frustrated with the issue and really want to resolve
it.  I'm not sure what all info could be helpful at this point.  If anyone
has any ideas or needs more info, please let me know.  I'll try anything and
provide any info needed.

   In summary, it looks like the interface locks occassionally, possibly
from a transmit underrun, when processing a fast connection to the LAN with
traffic originating from the Linux box.  There are no problems with
passthrough or receiving large amounts of data from the LAN.

   (I see that rtl8139.c version 1.21 is available ... is there a chance it
could help?)

   Sean Mullen

---------------------------- Original
postings -------------------------------
On Sat, 3 Aug 2002, Sean Mullen wrote:

>    I'm using 2 RTL8139 cards (both are SMC 1211TX) on my linux firewall.
> These are on a linux box with kernel linux-2.4.16.  Normal internet
> from my local LAN is fine.  However, when I'm transferring files off of
> linux box to a Win 2k box on the local LAN, the eth1 (LAN facing)
> locks with a TX error (assuming it's speed related).

What driver version are you using?

>    I can re-enable the LAN with an 'ifdown eth1' and an 'ifup eth1'.  I
> added a debug printout for a TX underrun, I think that's what's happening.
>    Here's the result of thedebug line I added: "eth1:TxUnderrun, status
> 0008e52e."

That is reporting a transmit underrun.
This should be a mostly harmless event.
  The transmitted packet might be corrupted, with a assured-bad CRC.
  The Tx FIFO threshold will be increased
  The transmitter will be restarted.

The initial Tx threshold value is set to 256 bytes (see TX_FIFO_THRESH
The threshold is increased by 64 bytes at each underrun.

This initial value is set by the following documented constant:

/* PCI Tuning Parameters
   Threshold is bytes transferred to chip before transmission starts. */
#define TX_FIFO_THRESH 256 /* In bytes, rounded down to 32 byte units. */

> Index #2: Found a RealTek RTL8139 adapter at 0xec00.
> RealTek chip registers at 0xec00
>  0x000: ... ... ... ...  000aa52e 000aa52e 000aa52e 000aa52e

Hmmm, none of the Tx status registers are reporting a Tx underrun here.

>  0x020: 02f70010 02f71010 02f72010 02f73010 02f60000 0d0a0000 654c653c
> 0000c07f

And this reports that the transmitter and receiver are both enabled.

>  0x040: 74000400

The transmitter configuration is normal
  74.. .... Version 74 == 8139C
  .... .4.. 256 bytes per burst

>  0x060: 1100f00f 01e1782d 000145e1 00000000 00000004 000417c8 b0f243b9

Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993