Re: Problem: NIC transmit timeouts

From: PaNiC
Date: Tue Mar 07 2006 - 07:06:20 EST


Thanks for your reply.
I have an idea what you're talking about, but no more i'm afraid.
I'm no programmer and i don't know how to try what you suggested.
What i did try was applying some patches manually that i found in the mailing list archives.

This is one of them:

--- drivers/net/sunhme.c.~1~ Sun Aug 11 18:37:34 2002
+++ drivers/net/sunhme.c Sun Aug 11 18:38:17 2002
@@ -1640,6 +1640,7 @@
HMD((", enable global interrupts, "));
hme_write32(hp, gregs + GREG_IMASK,
(GREG_IMASK_GOTFRAME | GREG_IMASK_RCNTEXP |
+ GREG_IMASK_TXALL |
GREG_IMASK_SENTFRAME | GREG_IMASK_TXPERR));

/* Set the transmit ring buffer size. */
@@ -2125,8 +2126,8 @@
happy_meal_mif_interrupt(hp);
}

- if (happy_status & GREG_STAT_TXALL) {
- HMD(("TXALL "));
+ if (happy_status & GREG_STAT_HOSTTOTX) {
+ HMD(("HOSTTOTX "));
happy_meal_tx(hp);
}

@@ -2155,7 +2156,7 @@

if (!(happy_status & (GREG_STAT_ERRORS |
GREG_STAT_MIFIRQ |
- GREG_STAT_TXALL |
+ GREG_STAT_HOSTTOTX |
GREG_STAT_RXTOHOST)))
continue;

@@ -2172,8 +2173,8 @@
happy_meal_mif_interrupt(hp);
}

- if (happy_status & GREG_STAT_TXALL) {
- HMD(("TXALL "));
+ if (happy_status & GREG_STAT_HOSTTOTX) {
+ HMD(("HOSTTOTX "));
happy_meal_tx(hp);
}

The other just put a "udelay(1)" on line 1999 of sunhme.c.
With the udelay(1) it seemed like after a reboot it would take longer for the timeout to happen. The other made no difference.

Very thankful for your time.
Jonas



----- Original Message ----- From: "John Z. Bohach" <jzb@xxxxxxxxxxxxx>
To: "PaNiC" <panic@xxxxxxxxxxxxxx>; <linux-kernel@xxxxxxxxxxxxxxx>
Sent: Monday, March 06, 2006 6:33 PM
Subject: Re: Problem: NIC transmit timeouts


On Monday 06 March 2006 04:28, PaNiC wrote:
1. The problem is that the outbound interface in a Sun Enterprise 250
running maquerade gets transmit timeouts frequently.

2. I get the error "NETDEV WATCHDOG: eth0: transmit timed out" and a
couple of seconds later the interface jumps back up again. This

I can't say what the cause of your particular NETDEV WATCHDOG timeout may
be, but I had the same problem, and I root-caused it to the host bus <--> PCI bridge
configuration. In particular, the multi-transaction timeout register in the bridge
wasn't programmed, and heavy PCI traffic would cause aborts. Also, the
ICH configuration register had to be programmed according to the manufacturer's
recommendations.

This was on Intel h/w, and the registers to which I refer are
proprietary, so its a bit difficult to know what values to program where,
but it might give you a place to start. On the other hand, some people have
reported issues with their device driver causing some timeouts, but your symptoms
seem to more closely resemble what I was seeing than those folks who had
s/w issues.

Regards,
John





-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/