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>
