Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Feb 2011 11:42:36 +0100
From:      =?iso-8859-1?Q?Michael_T=FCxen?= <Michael.Tuexen@lurchi.franken.de>
To:        Lev Serebryakov <lev@serebryakov.spb.ru>
Cc:        Karim Fodil-Lemelin <fodillemlinkarim@gmail.com>, pyunyh@gmail.com, jfv@freebsd.org, freebsd-net@freebsd.org
Subject:   Re: igb driver RX (was TX) hangs when out of mbuf clusters
Message-ID:  <E3078F5D-6F44-4DFC-9203-44039E9B2549@lurchi.franken.de>
In-Reply-To: <197599906.20110208121053@serebryakov.spb.ru>
References:  <AANLkTikrjkHDaBq%2Bx6MTZhzOeqWA=xtFpqQPsthFGmuf@mail.gmail.com> <197599906.20110208121053@serebryakov.spb.ru>

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

[-- Attachment #1 --]
On Feb 8, 2011, at 10:10 AM, Lev Serebryakov wrote:

> Hello, Karim.
> You wrote 8 февраля 2011 г., 6:29:53:
> 
>> Precisely, the exact same behavior happens (RX hang) if options
>> DEVICE_POLLING is _not_ used in the kernel configuration file. I tried with
>> POLLING since someone mentioned that it helped in a case mentioned earlier
>> today. Unfortunately for igb with or without polling yields the same rx ring
>> filing problem.
>  In my case (em(4), not igb(4) but symptoms are VERY similar) POLLING
> (both as kernel option AND "ifconfig em0 polling") options leads to
> resets (which drops all connections!) AFTER such kernel messages:
> 
> em0: Watchdog timeout -- resetting
> em0: Queue(0) tdh = 1302, hw tdt = 1265
> em0: TX(0) desc avail = 31,Next TX to Clean = 1296
Can you apply the attached patch and report what
the output for rx_nxt_refresh and rx_nxt_check is?

Best regards
Michael


[-- Attachment #2 --]
Index: if_igb.c
===================================================================
--- if_igb.c	(revision 218406)
+++ if_igb.c	(working copy)
@@ -5158,6 +5158,12 @@
 		SYSCTL_ADD_UQUAD(ctx, queue_list, OID_AUTO, "rx_bytes",
 				CTLFLAG_RD, &rxr->rx_bytes,
 				"Queue Bytes Received");
+		SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "rx_nxt_refresh",
+				CTLFLAG_RD, &rxr->next_to_refresh, 0,
+				"Next to refresh");
+		SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "rx_nxt_check",
+				CTLFLAG_RD, &rxr->next_to_check, 0,
+				"Next to check");
 		SYSCTL_ADD_INT(ctx, queue_list, OID_AUTO, "lro_queued",
 				CTLFLAG_RD, &lro->lro_queued, 0,
 				"LRO Queued");
Index: if_em.c
===================================================================
--- if_em.c	(revision 218406)
+++ if_em.c	(working copy)
@@ -5137,6 +5137,12 @@
 		SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "rx_irq",
 				CTLFLAG_RD, &rxr->rx_irq,
 				"Queue MSI-X Receive Interrupts");
+		SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "rx_nxt_refresh",
+				CTLFLAG_RD, &rxr->next_to_refresh, 0,
+				"Next to refresh");
+		SYSCTL_ADD_UINT(ctx, queue_list, OID_AUTO, "rx_nxt_check",
+				CTLFLAG_RD, &rxr->next_to_check, 0,
+				"Next to check");
 	}
 
 	/* MAC stats get their own sub node */

[-- Attachment #3 --]

> 
> -- 
> // Black Lion AKA Lev Serebryakov <lev@serebryakov.spb.ru>
> 
> _______________________________________________
> 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?E3078F5D-6F44-4DFC-9203-44039E9B2549>