RTL8139 speed in 100mbps network

"Volker Barth" <[email protected]> Wed, 17 Dec 2003 13:28:22 +0100 (MET)
Newsgroups gmane.linux.drivers.realtek.devel
Message-ID <[email protected]>
Hi,

I observe rather slow transfer rates: although I'm in a 100mbps
network, ftp transfer rates from my laptop to my desktop are usually
below 100kB/s. Internet downloads to the laptop sometimes occur at
200-300 kB/s but no faster. The desktop transfers files to ther
machines at much higher rates, so I assume the bottleneck is on the
laptop.

The laptop runs SuSE7.3 (still with the default 2.4.10 kernel but this
is about to be changed) and reports in /var/log/messages

  Dec 17 09:09:41 xxxxxx kernel: 8139too Fast Ethernet driver 0.9.18a
  Dec 17 09:09:41 xxxxxx kernel: eth0: RealTek RTL8139 Fast Ethernet at
0xd0854000
  Dec 17 09:09:41 xxxxxx kernel: eth0:  Identified 8139 chip type
'RTL-8139C'
  Dec 17 09:09:41 xxxxxx kernel: eth0: Setting 100mbps full-duplex based =
on
auto-negotiated partner ability 41e1.



Interestingly, modprobe delivers

   # modprobe -c |grep eth
  alias eth0 rtl8139
  alias eth1 off


so it looks as if the rtl8139 driver is actually loaded (in contrast
to what is said in /var/log/messages).


Furthermore, /var/log/messages tells me that I have 100mpbs
full-duplex auto-negotiation. This is what I would like to have,
however, mii-diag tells me something different:

  # ./mii-diag -Vf
  mii-diag.c:v2.09 9/06/2003 Donald Becker ([email protected])
   http://www.scyld.com/diag/index.html
  Using the default interface 'eth0'.
  Basic registers of MII PHY #32:  0000 0000 0000 0000 0000 0000 0000 000=
0.
    No MII transceiver present!.
   Basic mode control register 0x0000: Auto-negotiation disabled, with
   Speed fixed at 10 mbps, half-duplex.
   Basic mode status register 0x0000 ... 0000.
     Link status: not established.
   Link partner information is not exchanged when in fixed speed mode.
     End of basic transceiver information.



rtl8139-diag tells basically the same story:

     # ./rtl8139-diag -aa
  rtl8139-diag.c:v2.12 12/03/2003 Donald Becker ([email protected])
   http://www.scyld.com/diag/index.html
  Index #1: Found a RealTek RTL8139 adapter at 0xb000.
  The RealTek chip appears to be active, so some registers will not be re=
ad.
  To see all register values use the '-f' flag.
  RealTek chip registers at 0xb000
   0x000: 2d18e000 00009408 c0000000 40000000 0008a03c 0008a156 0008a03c
0008a156  0x020: 0f7f4000 0f7f4600 0f7f4c00 0f7f5200 0f6b0000 0d0a0000 73=
a87398
0000c07f  0x040: 74000600 0e00f78e 0de972af 00000000 008d10c6 00000000
0001c110 00100000  0x060: 1100f00f 01e1782d 000141e1 00000000 00000004 00=
083408
b0f243b9 8a36df43.Realtek station address aa:bb:cc:dd:ee:ff, chip type
'rtl8139C'.
    Receiver configuration: Normal unicast and hashed multicast
       Rx FIFO threshold 2048 bytes, maximum burst 2048 bytes, 32KB ring
    Transmitter enabled with normal settings, maximum burst 1024 bytes.
      Tx entry #0 status 0008a03c complete, 60 bytes.
      Tx entry #1 status 0008a156 complete, 342 bytes.
      Tx entry #2 status 0008a03c complete, 60 bytes.
      Tx entry #3 status 0008a156 complete, 342 bytes.
    Flow control: Tx disabled  Rx disabled.
    The chip configuration is 0x10 0x8d, MII half-duplex mode.
    No interrupt sources are pending.


Apparently I seem to work with 10mbps half-duplex and no autonegotiation.
The problem is that neither 'mii-diag -r' nor 'mii-diag -R' do not
have any effect, nor does 'mii-diag -F 100baseTx-FD' change anything,
the output from --force is always the one shown below:=20

  # ./mii-diag -r
  Using the default interface 'eth0'.
  Restarting negotiation...
  Basic registers of MII PHY #32:  0000 0000 0000 0000 0000 0000 0000 000=
0.
    No MII transceiver present!.
    Use '--force' to view the information anyway.
 =20
  # ./mii-diag --force
  Using the default interface 'eth0'.
  Basic registers of MII PHY #32:  0000 0000 0000 0000 0000 0000 0000 000=
0.
    No MII transceiver present!.
   Basic mode control register 0x0000: Auto-negotiation disabled, with
   Speed fixed at 10 mbps, half-duplex.
   Basic mode status register 0x0000 ... 0000.
     Link status: not established.
   Link partner information is not exchanged when in fixed speed mode.
     End of basic transceiver information.



What might be the reason for this behaviour? And what would I have to
do in order to speed up eth0 ?

Thanks,
Volker

--=20
+++ GMX - die erste Adresse f=FCr Mail, Message, More +++
Neu: Preissenkung f=FCr MMS und FreeMMS! http://www.gmx.net