how to force half duplex mode?

James Ralston qralston+ml.linux-vortex-bug@andrew.cmu.edu
Mon Jan 31 16:52:16 2000


No, I can't force the switch to half-duplex; it's not managed at all.
(I could've purchased a managed switch, of course, but I didn't feel
like paying more for the switch than the combined cost of both
computers that would be connected to it. ;)

Unfortunately, no one who responded to me (either on the list, or in
private) knew of a way to force the 3c59x driver to initialize the NIC
in half duplex mode.  If I can figure out how, what I'd like to do is
modify the driver so that it accepts a "duplex" option, with integer
arguments.  Specifying "duplex=0" would force half duplex, specifying
"duplex=1" would force full duplex, and setting "duplex=2" would allow
autonegotiation to occur.  If anyone has better suggestions on how to
handle this, I'm all ears...

BTW, I've looked more closely at this problem (extremely poor TCP/IP
performance).  I conducted tests using netcat (the "nc" program) for
both TCP and UDP traffic between my two machines (referred to as "foo"
and "bar", below).  Here are the results:

    foo: nic_duplex=full, switch_port=2, switch_duplex=full
    bar: nic_duplex=full, switch_port=3, switch_duplex=full

    8388608 bytes in 44.11 seconds from foo to bar via TCP
        throughput = 185.7 kb/s, 1.45 Mbit/s

    7335936 bytes in 7.00 seconds from foo to bar via UDP
        throughput = 0.999 mb/s, 7.99 Mbit/s
        8388608 bytes sent (12% of data dropped)

    1048576 bytes in 101.87 seconds from bar to foo via TCP
        throughput = 10.052 kb/s, 80.416 kbit/s

    8380416 bytes in 6.99 seconds from bar to foo via UDP
        throughput = 1.14 mb/s, 9.15 Mbit/s
        8388608 bytes sent (0.1% of data dropped)

If there were a cabling problem, a problem with the switch, or a
problem with the 3c59x driver, I'd expect that UDP performance and TCP
performance would be similarly affected.  But as the tests indicate,
UDP performance is fine.

At this point, I strongly suspect that the real problem is that the
Linux 2.2.12 kernel has horribly crippled TCP/IP performance under
certain conditions, and one of those conditions is "two machines
talking to each other as fast as they can in full duplex".

For the time being, I will mess around with the 3Com DOS utility to
see if I can't find a way to "lock" the NIC into half duplex mode (and
prevent the 3c59x driver from putting it in full duplex mode).
When/if I can figure out how to do that, then I'll repeat my tests for
half duplex modes as well.  Something else that I'm going to do is to
build a crossover CAT5 cable and connect the two machines together
directly (thereby eliminating the switch from the picture).

James

On Wed, 26 Jan 2000, Lawrence Walton wrote:
> Can you set the switch to half duplex?

-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-bug-request@beowulf.org