One of the parameters, budget, is modified to poll RX queues in fair manner,
another parameter in the whole game, work_done, should be correct
accordingly.
Signed-off-by: Jing Zhang <zj.na...@gmail.com>
---
--- linux-2.6.34/drivers/net/ixgbe/ixgbe_main.c 2010-05-17
05:17:36.000000000 +0800
+++ ixgbe/ixgbe_main_01.c 2010-07-15 20:51:18.000000000 +0800
@@ -1559,12 +1559,14 @@ static int ixgbe_clean_rxtx_many(struct
budget = max(budget, 1);
r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
for (i = 0; i < q_vector->rxr_count; i++) {
+ int this_work = 0;
ring = adapter->rx_ring[r_idx];
#ifdef CONFIG_IXGBE_DCA
if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
ixgbe_update_rx_dca(adapter, ring);
#endif
- ixgbe_clean_rx_irq(q_vector, ring, &work_done, budget);
+ ixgbe_clean_rx_irq(q_vector, ring, &this_work, budget);
+ work_done += this_work;
r_idx = find_next_bit(q_vector->rxr_idx, adapter->num_rx_queues,
r_idx + 1);
}
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
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