linux/drivers/net/ethernet/intel/i40e
Jesse Brandeburg c56625d597 i40e/i40evf: change dynamic interrupt thresholds
The dynamic algorithm, while now working, doesn't have good
performance in 40G mode.

One part of this patch addresses the high CPU utilization of some small
streaming workloads that the driver should reduce CPU in.

It also changes the minimum ITR that the dynamic algorithm
will settle on, causing our minimum latency to go from 12us
to about 14us, when using adaptive mode.

It also changes the BULK interrupt rate to allow maximum throughput
on a 40Gb connection with a single thread of transmit, clamping
interrupt rate to 8000 for TX makes single thread traffic go too
slow.

The new ULTRA bulk setting is introduced and is used
when the Rx packet rate on this queue exceeds 40000 packets per
second.  This value of 40000 was chosen because the automatic tuning
of minimum ITR=20us means that a single queue can't quite achieve
that many packets per second from a round-robin test.

Change-ID: Icce8faa128688ca5fd2c4229bdd9726877a92ea2
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2015-10-19 15:35:04 -07:00
..
i40e_adminq_cmd.h i40e: Add support for non-willing Apps 2015-10-16 04:48:11 -07:00
i40e_adminq.c i40e/i40evf: Add info to nvm info struct for OEM version data 2015-10-13 23:25:12 -07:00
i40e_adminq.h i40e/i40evf: fix a potential type compare issue 2015-10-07 13:38:11 -07:00
i40e_alloc.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_common.c i40e: Fix basic support for X722 devices 2015-10-19 15:27:30 -07:00
i40e_dcb_nl.c i40e: Change some messages from info to debug only 2015-10-15 01:58:41 -07:00
i40e_dcb.c i40e: Convert CEE App TLV selector to IEEE selector 2015-10-13 23:27:37 -07:00
i40e_dcb.h i40e: Add parsing for CEE DCBX TLVs 2015-10-08 15:11:38 -07:00
i40e_debugfs.c i40e: remove FD atr control from debugfs 2015-10-15 02:10:40 -07:00
i40e_devids.h i40e/i40evf: split device ids into a separate file 2015-10-13 23:37:13 -07:00
i40e_diag.c i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_diag.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_ethtool.c i40e: Recognize 1000Base_T_Optical phy type when link is up 2015-10-16 04:57:54 -07:00
i40e_fcoe.c i40e: Lock for VSI's MAC filter list 2015-10-19 15:15:08 -07:00
i40e_fcoe.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_hmc.c i40e: clean up unneeded gotos 2015-07-23 05:15:26 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.c i40e/i40evf: clean up some code 2015-10-08 16:19:55 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_main.c i40e/i40evf: use napi_schedule_irqoff() 2015-10-19 15:29:56 -07:00
i40e_nvm.c i40e: Fix basic support for X722 devices 2015-10-19 15:27:30 -07:00
i40e_osdep.h i40e: adds FCoE configure option 2015-01-14 16:48:39 -05:00
i40e_prototype.h i40e/i40evf: Fix compile issue related to const string 2015-10-16 04:38:35 -07:00
i40e_ptp.c i40e: generate fewer startup messages 2015-10-16 04:36:13 -07:00
i40e_register.h i40e/i40evf: add VIRTCHNL_VF_OFFLOAD flag 2015-08-26 15:09:54 -07:00
i40e_status.h i40e: Fix GPL header 2014-01-09 02:10:23 -08:00
i40e_txrx.c i40e/i40evf: change dynamic interrupt thresholds 2015-10-19 15:35:04 -07:00
i40e_txrx.h i40e/i40evf: change dynamic interrupt thresholds 2015-10-19 15:35:04 -07:00
i40e_type.h i40e: Fix basic support for X722 devices 2015-10-19 15:27:30 -07:00
i40e_virtchnl_pf.c i40e: Lock for VSI's MAC filter list 2015-10-19 15:15:08 -07:00
i40e_virtchnl_pf.h i40e: reset the invalid msg counter in vf when a valid msg is received 2015-10-16 04:53:04 -07:00
i40e_virtchnl.h i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40e.h i40e: Lock for VSI's MAC filter list 2015-10-19 15:15:08 -07:00
Makefile i40e: Strip configfs code 2015-03-07 07:01:06 -08:00