diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2008-07-08 15:14:44 -0700 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-11 01:20:33 -0400 |
commit | 6eb5a7f1dbd56883680290f6a0bd2d8d15f8ff58 (patch) | |
tree | ee4b0be39dba02863ae3e260b2b8c210e7535929 /drivers/net/igb/igb.h | |
parent | 9280fa5201d7f69b20af4b7efadb5fe8f2f67277 (diff) |
igb: Improve multiqueue AIM support
Improve multiqueue performance
Change itr_val to reflect ITR timer value instead of ints/sec
Cleaned up AIM algorithms in general
Based on work by Mitch Williams
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/igb/igb.h')
-rw-r--r-- | drivers/net/igb/igb.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/igb/igb.h b/drivers/net/igb/igb.h index c25ca17d322..56de7ec15b4 100644 --- a/drivers/net/igb/igb.h +++ b/drivers/net/igb/igb.h @@ -47,7 +47,9 @@ struct igb_adapter; #define IGB_MIN_DYN_ITR 3000 #define IGB_MAX_DYN_ITR 96000 -#define IGB_START_ITR 6000 + +/* ((1000000000ns / (6000ints/s * 1024ns)) << 2 = 648 */ +#define IGB_START_ITR 648 #define IGB_DYN_ITR_PACKET_THRESHOLD 2 #define IGB_DYN_ITR_LENGTH_LOW 200 @@ -170,9 +172,10 @@ struct igb_ring { }; /* RX */ struct { - int no_itr_adjust; struct igb_queue_stats rx_stats; struct napi_struct napi; + int set_itr; + struct igb_ring *buddy; #ifdef CONFIG_IGB_LRO struct net_lro_mgr lro_mgr; bool lro_used; @@ -219,7 +222,6 @@ struct igb_adapter { u32 itr_setting; u16 tx_itr; u16 rx_itr; - int set_itr; struct work_struct reset_task; struct work_struct watchdog_task; |