Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dc(4) TX underrun error

0 views
Skip to first unread message

seta...@submonkey.net

unread,
Nov 8, 2001, 7:19:45 AM11/8/01
to

Yesterday, as I was FTPing down the stuff for the linux base port, this
popped up in /var/adm/messages :

Nov 7 21:38:25 rhadamanth /kernel: dc0: TX underrun -- increasing TX threshold

I'm not particularly worried about the message, as it looks totally
harmless to me, but was just wondering if anyone could explain what it
actually means ??

Thanks,

Ceri

--
keep a mild groove on

To Unsubscribe: send mail to majo...@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message

mi...@activemessage.com

unread,
Nov 8, 2001, 5:01:36 PM11/8/01
to
What it means (specifically) (taken from the man page verbatim) is:

dc%d: TX underrun -- increasing TX threshold The device generated a
transmit underrun error while attempting to DMA and transmit a packet.
This happens if the host is not able to DMA the packet data into the
NIC's FIFO fast enough. The driver will dynamically increase the trans-
mit start threshold so that more data must be DMAed into the FIFO before
the NIC will start transmitting it onto the wire.

basically the NIC will start to transmit after a cerain number of bytes are in it's
input area through DMA, usually this is significantly less tahn an ethernet frame
(1500). So what happens is the NIC starts to assemble and transmit the packet
before it has all of it which is a good idea if you're in a hurry, and the host can
keep up with the DMA transfer to give you the rest of the packet before you reach
the end of your DMA stream. Unfortunately sometimes this isn't the case, on
older/slower hardware the DMA controller may get sidetracked and not finish off the
transfer quite quickly enough so the transmitter on the NIC starves for a
millisecond or so too long, it then makes a note and complains to the software
driver.

The driver is informing you that it's increasing the low water mark that must be in
the cards FIFO buffer before it starts transmitting (it's a quick PIO to the card
that changes the setting in the hardware).

seta...@submonkey.net

unread,
Nov 9, 2001, 7:18:35 AM11/9/01
to
On Thu, Nov 08, 2001 at 02:01:19PM -0800, Michael Loftis wrote:

A fantastic answer to my question.

Thanks Michael

mlo...@wgops.com

unread,
Nov 9, 2001, 7:26:10 AM11/9/01
to
NP -- it's good to flex that 'old school' knowledge once in a while, if
I don't I forget then I need it and I'm screwed lol :)

One of our servers as a quad ethercard based on the 21124 chipset, which
is run by the dc driver, when it gets hit full tilt on more than a port
at a time we get a splort of TX underrun followed usually pretty
promptly by the other one TX underrun - switching to something mode
rather than increasing threshold. It's perfectly harmless, just emans
it's not being as efficient as it could be if the CPU could keep up :)

0 new messages