On 10/08/2010 12:03 PM, Brandeburg, Jesse wrote:

> 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 haven't added that.  Is it needed for x86?

>> Here's the result of a typical event:
>>
>> eth4 (affected device)
>> EICS: 00000001
>> EIMS: d619fffe
>> EIMC: d619fffe
>> EIAC: 4000ffff
>> EIAM: 0000ffff
>> packets waiting on rx ring 0
> 
> (leading zeros added above for clarity)
> so this says you have an interrupt on vector zero, which is masked, which 
> means if you read the RDH/RDT registers you would probably see they are 
> farther than two apart (meaning data was rx'd by hardware into memory but 
> not taken by driver)

The "packets waiting" message above comes from looping over all the
rings and checking the IXGBE_RXD_STAT_DD bit on rx_ring->next_to_clean.
 I didn't check RDH/RDT but I expect it would be as you say.

>> We've got a few clues--it seems to be related to tcp traffic, it doesn't
>> take much traffic at all (less than 10% of a single core cpu usage), and
>> dropping the link speed from 10Gbps to 1Gbps made the problem go away.
> 
> so dropping the link speed changes timing and probably eliminates your 
> issue via luck.

Yes, that's what I figured.

>> Anyone got any ideas what might be going on?
> 
> To me this sounds extremely like an interrupt enable race, possibly at the 
> hardware level with your chipset that is implementing MSI-X
> 
> One thing we can do is stop using autoclear (EIAC), which requires a 
> slight bit of code to be added to the MSI-X routines, to make sure the 
> driver writes EICR to clear the bit that was asserted.

So basically we'd set the tx/rx queue bits in EIAC to zero at init time
and then in ixgbe_clean_rxtx_many() (in my specific case) we'd call
ixgbe_irq_disable_queues()?  Is anything else needed?

Chris

-- 
Chris Friesen
Software Developer
GENBAND
chris.frie...@genband.com
www.genband.com

------------------------------------------------------------------------------
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

Reply via email to