diff options
author | Nick Nunley <nicholasx.d.nunley@intel.com> | 2010-02-16 20:03:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 16:21:35 -0500 |
commit | abe1c3638ccf8b68536afb52b111f6ad46d1cf71 (patch) | |
tree | 3b871785aa37ba60869ce8f7f06dd6f35cb90607 /drivers/net/igb/igb_main.c | |
parent | 2d0b0f693578109aff347e055d47f2797c802261 (diff) |
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/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 4 |
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) | |||
3260 | else | 3260 | else |
3261 | new_val = avg_wire_size / 2; | 3261 | new_val = avg_wire_size / 2; |
3262 | 3262 | ||
3263 | /* when in itr mode 3 do not exceed 20K ints/sec */ | ||
3264 | if (adapter->rx_itr_setting == 3 && new_val < 196) | ||
3265 | new_val = 196; | ||
3266 | |||
3263 | set_itr_val: | 3267 | set_itr_val: |
3264 | if (new_val != q_vector->itr_val) { | 3268 | if (new_val != q_vector->itr_val) { |
3265 | q_vector->itr_val = new_val; | 3269 | q_vector->itr_val = new_val; |