Subject: kern/17108: sip0 dies with "device timeout"
To: None <gnats-bugs@gnats.netbsd.org>
From: None <christianbiere@gmx.de>
List: netbsd-bugs
Date: 05/30/2002 16:38:53
>Number:         17108
>Category:       kern
>Synopsis:       sip0 dies with "device timeout"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu May 30 16:39:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Christian Biere
>Release:        1.6A
>Organization:
>Environment:
NetBSD 1.6A (DURON) #1: Wed Feb  6 03:41:26 CET 2002
    root@localhost:/usr/src/sys/arch/i386/compile/DURON

>Description:
After a very few hours of internet connectivity my sip0 device dies with these error messages:
sip0: CRC error
sip0: CRC error
sip0: CRC error
sip0: CRC error
sip0: CRC error
sip0: transmit FIFO underrun; increasing Tx drain threshold to 544 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 576 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 608 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 640 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 672 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 704 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 736 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 768 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 800 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 832 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 864 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 896 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 928 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 960 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 992 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 1024 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 1056 bytes
sip0: transmit FIFO underrun; increasing Tx drain threshold to 1088 bytes
sip0: device timeout
sip0: device timeout
sip0: device timeout

...and R.I.P. It will not work again before I reboot the system. I can produce that problem nearly instantly if I copy a some files (or a great file) per scp from one PC to another. 

from dmesg:

sip0 at pci0 dev 3 function 0: SiS 900 10/100 Ethernet, rev 0x90
sip0: interrupting at irq 10
sip0: Ethernet address 00:07:95:a9:a5:7f
ukphy0 at sip0 phy 1: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000004, model 0x0020, rev. 1
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

>How-To-Repeat:
Setup a connection between two computers. Produce some (high) traffic with e.g. scp. After some moments the sip0 device dies with the messages above.
>Fix:
Use the snapshot of 1.5ZA and 10BaseT should work. You might still get many "sip0: CRC error" warnings but the device will not die. 100BaseTX does not seem to work (well) but that might be a problem of the rtk0 device on the other PC or the cable(?).
>Release-Note:
>Audit-Trail:
>Unformatted: