summaryrefslogtreecommitdiffstats
path: root/drivers/net/igb
diff options
context:
space:
mode:
authorNick Nunley <nicholasx.d.nunley@intel.com>2010-02-17 01:03:19 +0000
committerDavid S. Miller <davem@davemloft.net>2010-02-17 13:21:35 -0800
commitabe1c3638ccf8b68536afb52b111f6ad46d1cf71 (patch)
tree3b871785aa37ba60869ce8f7f06dd6f35cb90607 /drivers/net/igb
parent2d0b0f693578109aff347e055d47f2797c802261 (diff)
downloadlinux-abe1c3638ccf8b68536afb52b111f6ad46d1cf71.tar.bz2
igb: cap interrupts at 20K per queue when in itr mode 3
In order to maintain similar performance between MSI-X and legacy/MSI interrupts, this patch reduces the number of interrupts when receiving small packets to 20K when in interrupt throttle rate mode 3. Signed-off-by: Nicholas Nunley <nicholasx.d.nunley@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb')
-rw-r--r--drivers/net/igb/igb_main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index eb48e1a084dd..4ccc7fc70f53 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3260,6 +3260,10 @@ static void igb_update_ring_itr(struct igb_q_vector *q_vector)
else
new_val = avg_wire_size / 2;
+ /* when in itr mode 3 do not exceed 20K ints/sec */
+ if (adapter->rx_itr_setting == 3 && new_val < 196)
+ new_val = 196;
+
set_itr_val:
if (new_val != q_vector->itr_val) {
q_vector->itr_val = new_val;