Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Aug 2006 13:32:42 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Daniel Ryslink <daniel.ryslink@col.cz>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Problems with em interfaces on FreeBSD 6.1
Message-ID:  <20060817043242.GF49739@cdnetworks.co.kr>
In-Reply-To: <20060811100536.V80282@k2.vol.cz>
References:  <20060811100536.V80282@k2.vol.cz>

next in thread | previous in thread | raw e-mail | index | archive | help

--8nsIa27JVQLqB7/C
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Fri, Aug 11, 2006 at 10:06:00AM +0200, Daniel Ryslink wrote:
 > 
 > Hello,
 > 
 > We have currently upgraded one of our routers to Gigabit connectivity and 
 > FreeBSD 6.1 Release.
 > 
 > The hardware is Supermicro SuperServer 5015M-T  - we have tried both the 
 > integrated NIC and yet another external Intel NIC - specifically
 > 
 > Intel PRO/1000 MT Dual Port Server Adapter
 > PWLA8492MT
 > 
 > The problem is that several times a day, the following appears in 
 > messages:
 > 
 > Aug 11 08:41:44 b2 kernel: em0: watchdog timeout -- resetting
 > 
 > accompanied with a loss of connectivity lasting for several seconds.
 > 
 > We have tried using both the default driver that came with the FreeBSD 
 > installation as well as the newest driver from Intel dated 2th April 2006 
 > compiled as a module, but the problem still persists.
 > 
 > If anyone encountered the problem and has a solution, I would be very 
 > grateful.
 > 

Because I can't reproduce it here and I failed to find a possible
cause of the issue.
As a last resort would you give attached patch a try?
The patch was generated against latest stable.

-- 
Regards,
Pyun YongHyeon

--8nsIa27JVQLqB7/C
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="em.debug.patch"

--- if_em.c.orig	Fri Aug 11 10:56:10 2006
+++ if_em.c	Thu Aug 17 13:27:43 2006
@@ -943,6 +943,15 @@
 		return;
 	}
 
+	/* Relaim pending Tx descriptors */
+	em_txeof(adapter);
+	if (adapter->num_tx_desc_avail == adapter->num_tx_desc) {
+		device_printf(adapter->dev,
+		    "Missing Tx completion interrupt!\n");
+		EM_UNLOCK(adapter);
+		return;
+	}
+	
 	if (em_check_for_link(&adapter->hw) == 0)
 		device_printf(adapter->dev, "watchdog timeout -- resetting\n");
 

--8nsIa27JVQLqB7/C--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060817043242.GF49739>