[tulip] problem with tulip card ceasing to function - requires ifup/ifdown to fix

Donald Becker becker@scyld.com
Mon Nov 26 13:55:01 2001


On Mon, 26 Nov 2001 dani-post@roisman.com wrote:

> I'm using a 4-Port DLINK DFE-570 for a firewall which sees quite a bit
> of traffic. 
> 
> It has enjoyed over 100-day uptimes, sometimes pushing 98Mbit/s for a
> few minutes at a time. 
> 
> Today, the eth0 interface stopped sending traffic.  The remedy was an
> ifup eth0 ; ifdown eth0 
> 
> Any ideas?  Here are the details (only giving you eth0 info):
> 
> Linux 2.2.19, driver version 0.92t (was latest when this kernel was built)

> # mii-diag eth0
> Basic registers of MII PHY #1:  1100 786d 2000 5c10 01e1 41e1 0005 2801.

Normal.

> # tulip-diag -aa -ee -mm
> tulip-diag.c:v2.06 1/8/2001 Donald Becker (becker@scyld.com)
>  http://www.scyld.com/diag/index.html
> Index #1: Found a Digital DS21143 Tulip adapter at 0xc800.
>  * A potential Tulip chip has been found, but it appears to be active.
>  * Either shutdown the network, or use the '-f' flag to see all values.
> Digital DS21143 Tulip chip registers at 0xc800:
>  0x00: f8a08000 ffffffff ffffffff 07fee800 07feea00 f0660000 b20e2202 fbfffbff

Was this when the chip stopped?  Or after you restarted?
Everything looks normal, with all registers having the expected
configuration.

> Nov 22 03:03:14 soewfv2 kernel: eth0: Digital DS21143-xD Tulip rev 65 at 0xc800, 00:80:C8:B9:98:4D, IRQ 12. 
> Nov 22 03:03:14 soewfv2 kernel: eth0:  EEPROM default media type Autosense. 
> Nov 22 03:03:14 soewfv2 kernel: eth0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block. 
> Nov 22 03:03:14 soewfv2 kernel: eth0:  MII transceiver #1 config 3100 status 7869 advertising 01e1. 
> Nov 22 03:03:14 soewfv2 kernel: tulip.c:v0.92t 1/15/2001  Written by Donald Becker <becker@scyld.com> 
...
> messages logged in syslog right before the interface went unusable:
> Nov 26 16:24:37 soewfv2 kernel: eth0: Too much work during an interrupt, csr5=0xf06f0040. 
> Nov 26 16:24:37 soewfv2 kernel: eth0: Too much work during an interrupt, csr5=0xf0670040. 

Hmmm, you either have an extreme burst of small packets, or some other
driver is hogging the machine.  The status is reporting a normal receive
done interrupt.

Try changing the max_interrupt_work paramter from the default of 25 to 100
in /etc/modules.conf

options tulip max_interrupt_work=100

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