Subject: kern/13770: sip0: transmit FIFO underrun
To: None <gnats-bugs@gnats.netbsd.org>
From: None <art@riverstonenet.com>
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
>Closed-Date:
>Last-Modified:
>Originator:     Artem Belevich
>Release:        1.5.1
>Organization:
>Environment:
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
>Description:
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

>How-To-Repeat:
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.
>Fix:
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 */
RXCFG: use RXCFG_MXDMA_64  

>Release-Note:
>Audit-Trail:
>Unformatted: