Subject: kern/13770: sip0: transmit FIFO underrun
To: None <>
From: None <>
List: netbsd-bugs
Date: 08/22/2001 15:03:00
>Number:         13770
>Category:       kern
>Synopsis:       sip0: transmit FIFO underrun
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 22 14:59:00 PDT 2001
>Originator:     Artem Belevich
>Release:        1.5.1
NetBSD  1.5.1 NetBSD 1.5.1 (ART) #40: Wed Aug 22 13:28:14 PDT 2001     root@:/usr/src/sys/arch/i386/compile/ART i386
bi-directional TCP traffic (Xemacs, using X display on another 
machine) causes a lot of FIFO underrun messages for DP83815 based 
NIC connected to dumb 10Base-T hub:
Aug 22 13:03:41  /netbsd: sip0: transmit FIFO underrun
Aug 22 13:04:15  last message repeated 7 times
Aug 22 13:05:16  last message repeated 22 times
Aug 22 13:16:05  last message repeated 15 times
Aug 22 13:26:00  last message repeated 16 times

Get two NetGear FA311TX cards, hook them up through 10BaseT hub.
Start Xemacs on one machine with display on another. Open up
large file, turn font-lock-mode on and try using scrolling using 
page-down. You'll see a lot of "transmit FIFO underrun" messages on both 
machines. Xemacs will occasionally freeze while TCP deals with lost packets.
It appears that initial chip configuration is what causes the problem.
With the following default values set in sip_init FIFO underruns go away.
sc->sc_tx_fill_thresh = 256/32; /* was 32/32 !!! this is the source of the problem */
/* these are not critical. */
sc->sc_tx_drain_thresh = 256 / 32; /* was 512/32 */
TXCFG: use TXCFG_MXDMA_128  /* was 512 */