>-----Original Message----- >From: Brandeburg, Jesse [mailto:jesse.brandeb...@intel.com] >Sent: Friday, October 08, 2010 11:03 AM >To: Chris Friesen >Cc: e1000-devel@lists.sourceforge.net; Allan, Bruce W; Kirsher, Jeffrey T; >Ronciak, John >Subject: Re: [E1000-devel] ixgbe driver stuck with interrupts off but >packets in rx ring > > > >On Fri, 8 Oct 2010, Chris Friesen wrote: > >> >> Hi all, >> >> We've got an 82599 device using the XAUI interface over an ATCA >> backplane data link, using version 2.0.72.4 of the ixgbe driver from >> sourceforge. (We also tried 2.1.4 and it didn't help.) >> >> As I mentioned a while back, I'm investigating an issue where under load >> we eventually suddenly stop receiving packets. We're sending out >> packets, I can see the reply being sent with tcpdump on other hosts, but >> we never receive the reply. The driver doesn't complain about loss of >> carrier (and doesn't indicate dropped packets). >> >> I added some instrumentation that triggers once we haven't received any >> packets for at least 300ms (and I know that we should be receiving >> some). The instrumentation dumps the values of various >> interrupt-related registers on the 82599 and also walks the rx rings to >> see if there are any packets ready to process. > >I guess, first did you end up with the wmb/rmb patches added by IBM for >the PPC stuff upstream? I'm not sure we have those in our sf.net driver >yet.
I believe I added this patch to the source forge driver around 2.0.103 so it "should" be in the 2.1.4 driver. Assuming this is the patch you were talking about. [r...@dcs_desk CORE]# cvs diff -r 1.1317 -r 1.1318 -up ixgbe_main.c Index: ixgbe_main.c =================================================================== RCS file: /home/cvsroot/ladsw/ixgbe/linux/oplin/src/CORE/ixgbe_main.c,v retrieving revision 1.1317 retrieving revision 1.1318 diff -u -p -r1.1317 -r1.1318 --- ixgbe_main.c 10 Aug 2010 01:41:17 -0000 1.1317 +++ ixgbe_main.c 10 Aug 2010 20:42:13 -0000 1.1318 @@ -453,6 +453,7 @@ static bool ixgbe_clean_tx_irq(struct ix while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) && (count < tx_ring->work_limit)) { bool cleaned = false; + rmb(); /* read buffer_info after eop_desc */ for ( ; !cleaned; count++) { tx_desc = IXGBE_TX_DESC_ADV(tx_ring, i); tx_buffer_info = &tx_ring->tx_buffer_info[i]; Thanks, -Don ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired