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: