Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Aug 2010 17:20:06 -0500
From:      marek3@intranetplanet.com
To:        "Vladislav V. Prodan" <universite@ukr.net>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Error: em0: Watchdog timeout -- resetting
Message-ID:  <90d617799b7eb9f41207b4d82f7b6254.squirrel@www.intranetplanet.com>
In-Reply-To: <4C744053.6010403@ukr.net>
References:  <4C744053.6010403@ukr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
I had the same issue six months ago with a test server. I did not find a
solution. I'm very much would like to see if you do find one. Thanks.
Marek

> The server is sometimes off the network card.
> It helps just to restart via KVM-IPMI.
>
> MotherBoard: X8SIL/X8SIL-F
> BIOS Version:	1.0c
> Build Date:	02/05/10
>
> OS: FreeBSD 8.1-RELEASE, FreeBSD 8.1-STABLE, FreeBSD 9.0-CURRENT
>
> What would you recommend to address the problem?
>
>
> # uname -a
> FreeBSD solo.XXX.biz 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Tue Aug 24
> 15:52:21 EEST 2010     root@solo.XXX.biz:/usr/obj/usr/src/sys/solo.2
> amd64
>
> #pciconf -lv
> ...
> em0@pci0:2:0:0: class=0x020000 card=0x060515d9 chip=0x10d38086 rev=0x00
> hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = 'Intel 82574L Gigabit Ethernet Controller (82574L)'
>     class      = network
>     subclass   = ethernet
> em1@pci0:3:0:0: class=0x020000 card=0x060515d9 chip=0x10d38086 rev=0x00
> hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = 'Intel 82574L Gigabit Ethernet Controller (82574L)'
>     class      = network
>     subclass   = ethernet
> ...
>
> In /usr/src/sys/dev/e1000/if_em.c:
>
> static void
> em_local_timer(void *arg)
> {
> 	struct adapter	*adapter = arg;
> 	struct ifnet	*ifp = adapter->ifp;
> 	struct tx_ring	*txr = adapter->tx_rings;
>
> 	EM_CORE_LOCK_ASSERT(adapter);
>
> 	em_update_link_status(adapter);
> 	em_update_stats_counters(adapter);
>
> 	/* Reset LAA into RAR[0] on 82571 */
> 	if (e1000_get_laa_state_82571(&adapter->hw) == TRUE)
> 		e1000_rar_set(&adapter->hw, adapter->hw.mac.addr, 0);
>
> 	/*
> 	** Check for time since any descriptor was cleaned
> 	*/
> 	for (int i = 0; i < adapter->num_queues; i++, txr++) {
> 		EM_TX_LOCK(txr);
> 		if (txr->watchdog_check == FALSE) {
> 			EM_TX_UNLOCK(txr);
> 			continue;
> 		}
> 		if ((ticks - txr->watchdog_time) > EM_WATCHDOG)
> 			goto hung;
> 		EM_TX_UNLOCK(txr);
> 	}
>
> 	callout_reset(&adapter->timer, hz, em_local_timer, adapter);
> 	return;
> hung:
> 	device_printf(adapter->dev, "Watchdog timeout -- resetting\n");
> 	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
> 	adapter->watchdog_events++;
> 	EM_TX_UNLOCK(txr);
> 	em_init_locked(adapter);
> }
>
> Someone will finish the piece for debugging, to further diagnose the
> error?
>
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>





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