From owner-freebsd-hackers Mon May 10 12:38:33 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from spinner.netplex.com.au (spinner.netplex.com.au [202.12.86.3]) by hub.freebsd.org (Postfix) with ESMTP id 0A77E14E37 for ; Mon, 10 May 1999 12:38:26 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from netplex.com.au (localhost [127.0.0.1]) by spinner.netplex.com.au (Postfix) with ESMTP id C9FF61F73; Tue, 11 May 1999 03:38:21 +0800 (WST) (envelope-from peter@netplex.com.au) X-Mailer: exmh version 2.0.2 2/24/98 To: Matthew Dillon Cc: "Pedro J. Lobo" , freebsd-hackers@FreeBSD.ORG Subject: Re: What is a "transmit underflow"? In-reply-to: Your message of "Mon, 10 May 1999 11:37:57 MST." <199905101837.LAA69281@apollo.backplane.com> Content-Transfer-Encoding: 8bit Date: Tue, 11 May 1999 03:38:21 +0800 From: Peter Wemm Message-Id: <19990510193823.C9FF61F73@spinner.netplex.com.au> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Matthew Dillon wrote: > :Hi, all. > : > :I've got two FreeBSD boxes (3.1-R) working as routers, one with two 4-port > :ZNYX 10/100 ethernet cards and the other with one of those cards. The > :cards have DEC chips (21140A). > : > :The routers are working perfectly, but from time to time I get the > :following messages: > : > :de0: abnormal interrupt: transmit underflow (raising TX threshold to 96|256) > :de1: abnormal interrupt: transmit underflow (raising TX threshold to 96|256) > : > :What do they mean? Everything seems to be OK, but I'd like to know wether > :I have to worry about this or not. > : > :TIA, > : > : Pedro. > : > :Pedro José Lobo Perea Tel: +34 91 336 78 19 > > Don't worry about it, it happens with most tulip-based cards. The cards > seem to have a hard time staging DMA but the device driver takes care > of it. We have some machines that bump it all the way up to 1024. > > de0: enabling 100baseTX port > de0: enabling Full Duplex 100baseTX port > ... > de0: abnormal interrupt: transmit underflow (raising TX threshold to 96|256) > ... > de0: abnormal interrupt: transmit underflow (raising TX threshold to 8|512) > ... > de0: abnormal interrupt: transmit underflow (raising TX threshold to 1024) And the next in the sequence is 'switching to store-and-forward mode'. It's a real puzzle to me why this happens. Take the 1024 example, the busmaster engine fetches 1024 bytes into the 2K fifo before beginning the packet transmission, and yet, with 1024 out of ~1500 bytes prefetched, it still exhausts the fifo.. The transmitter has managed to send 1024 bytes at 100mbit/sec (~10mbyte/sec) faster than the PCI bus could fetch the remaining 512 bytes via bursting at 133mbyte/sec. The refill should be ~13 times faster than the transmit rate and yet it gets an underflow and chops the packet. The only thing I can think of is that the PCI configuration is hosed and the bus-master engine is getting completely starved for a while (latency timers wrong?), or the chipset goes off to lala land and forgets to refill, or something that the driver is doing to the chip is somehow stalling the transmit process. I think Bill Paul has found another chipset (if_mx? macronix?) that has similar behavior. I think I recall Bill telling me the windows dc2x4x driver runs in store-and-forward mode always. As a footnote, one of these cards (SMC9332BDT) is in a VIA MVP3 chipset motherboard, with a Matrox card in a pci slot, the other system that's having these problems is an old P5-90 SMP system and it's sharing it's bus with an EISA bus and an AHA2742T eisa controller. Cheers, -Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message