On 06/13/2011 04:05 PM, Ben Greear wrote: > On 06/13/2011 02:53 PM, Ben Greear wrote: >> On 06/13/2011 01:54 PM, Brandeburg, Jesse wrote: >>> The generator box seems to be resetting the controller (and therefore the >>> link) Check out ethtool stats on both side and look for tx_timeout. >>> >> >> The emulator (igb) system is steadily increasing every >> few seconds: >> >> tx_timeout_count: 9 > > I think the problem lies in the same place that I reported the crash > last time: > > adapter->num_tx_queues is 1, but netdev->num_tx_queues is 16.
Actually, the bug appears to be my fault. I was assuming that skb->queue_mapping on input matched output, but it's actually +1 on input, so you need to use the accessor methods (skb_get_rx_queue()) to get and set it before transmitting. So, I was sending pkts to igb with on queue 1, when in fact it had only one real queue. The packets do leave the box fine, and if you disable the timeout() logic, it runs flawless, but the trans_start is never updated on queue 0, even though it will report itself as queue-stopped when queue 1 is being over-driven (and thus often stopped). This bug has been in my code since 2.6.31 or so, so not sure why I only hit it on out-of-kernel igb, but maybe because it has only a single real queue. (I was also using dev->num_tx_queues as the upper bound check, instead of the correct dev->real_num_tx_queues) Hope this email helps someone else avoid this same mistake! Thanks, Ben -- Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
