[3634] in linux-net channel archive
3c595 and repeatable trivial network crash!
daemon@ATHENA.MIT.EDU (Ove Ewerlid)
Thu Jul 11 20:44:01 1996
Date: Thu, 11 Jul 1996 06:54:35 +0200
From: Ove Ewerlid <ewerlid@syscon.uu.se>
To: linux-net@vger.rutgers.edu
CC: ewerlid@syscon.uu.se
Hi!
A can consistantly break the network on linux machines using
3c595-cards with large buffers (true for 1.3.9x - 2.0.x).
The buffer size is 64 Kword (128 Kb) in the cards I use.
1) Log in to the machine with the 3c595 card from another
linux box (in this case with a 3c509B).
2) Start x11perf and the network freezes within seconds!
you can cure the problem by replacing the 3c595 with a 3c590.
The 3c590 has 8 kb buffer.
When the net has hanged you can fix it by 'ifconfig ethX down/up'.
The interface seems to receive packets but none is sent during the
hanged condition.
Also, I have 6 machines and 12 3c595 cards and I've seen this
on three machines and 4 different 3c595 cards so it is not a bad
card.
Observing the TCP traffic with tcpdump reveals that in the 3c590
case there are never more then one outstanding packet.
In the 3c595 case there can be up to 10 outstanding packets that
are ack:et by 10 consective ACK-packets. As long as the ballance
is kept there is no hang but as soon as there are a lot of
outstadning ack's it doesn't take many packets until the hangup.
Some kind of ACK-deadlock that locks the entire interface ...
Any body else seen this or has any klues as how to fix it?
The machines using the 3c595 cards are servers so the larger
buffer is quite handy. Also, I can have many
rsh foobar "cat /dev/zero" > /dev/null
running without any hangups. These tests tends to preserve the balance
between ack and data.
Ove