Subject: kern/13770: sip0: transmit FIFO underrun
To: None <firstname.lastname@example.org>
From: None <email@example.com>
Date: 08/22/2001 15:03:00
>Synopsis: sip0: transmit FIFO underrun
>Arrival-Date: Wed Aug 22 14:59:00 PDT 2001
>Originator: Artem Belevich
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 */
RXCFG: use RXCFG_MXDMA_64