[ltp] Slow Ethernet performance using 10BaseT

Grahame Bowland linux-thinkpad@linux-thinkpad.org
Tue, 18 Jan 2005 11:47:24 +0800


On Mon, 2005-01-17 at 16:19 -0700, Nathan Kurz wrote:
> I'm running 2.6.9 on a Thinkpad X30 and I'm running into a problem
> that I don't understand. It seems like I'm getting very slow ethernet
> performance when I connect with 10BaseT.  Transferring files between
> two local computers I get about 30KB/s using ftp or scp, which is much
> slower than I would expect.

Sounds like a duplex mismatch. One end will be in full-duplex mode, one
in half-duplex which leads to collisions. If you use the "ethtool"
command you can inspect the link speed and duplex settings for your
ethernet card - try reversing the duplex.

Note that if you force the duplex setting on your ethernet card, it will
stop participating in duplex negotiation. The spec says that the other
host will then default to (I think from memory) half duplex. So you get
the following annoying scenario:

  Host A and B set to auto-negotiate. A ends up full duplex, B half
duplex.
  Administrator forces host B to full duplex.
  Host A notices brief interruption in link, attempts to re-negotiate
duplex. Negotation fails, A ends up half duplex.

There's lots of network cards and switches with broken auto-negotiation,
which will end up with the wrong duplex when set to "auto". However,
because of the above forcing your NIC's duplex settings can cause the
other end to reverse itself!