linux/drivers/net/ethernet/intel/i40e
Jesse Brandeburg ac26fc136c i40e/i40evf: moderate interrupts differently
The XL710 hardware has a different interrupt moderation design
that can support a limit of total interrupts per second per
vector, in addition to the "number of interrupts per second"
controls already established in the driver.  This combination
of hardware features allows us to set very low default latency
settings but minimize the total CPU utilization by not
making too many interrupts, should the user desire.

The current driver implementation is still enabling the dynamic
moderation in the driver, and only using the rx/tx-usecs
limit in ethtool to limit the interrupt rate per second, by default.

The new code implemented in this patch
2) adds init/use of the new "Interrupt Limit" register
3) adds ethtool knob to control/report the limits above

Usage is ethtool -C ethx rx-usecs-high <value> Where <value> is number
of microseconds to create a rate of 1/N interrupts per second,
regardless of rx-usecs or tx-usecs values. Since there is a credit based
scheme in the hardware, the rx-usecs and tx-usecs can be configured for
very low latency for short bursts, but once the credit runs out the
refill rate on the credits is limited by rx-usecs-high.

Change-ID: I3a1075d3296123b0f4f50623c779b027af5b188d
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-16 04:50:38 -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/i40evf: Fix compile issue related to const string 2015-10-16 04:38:35 -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/i40evf: moderate interrupts differently 2015-10-16 04:50:38 -07:00
i40e_fcoe.c i40e: Change some messages from info to debug only 2015-10-15 01:58:41 -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: moderate interrupts differently 2015-10-16 04:50:38 -07:00
i40e_nvm.c i40e/i40evf: Fix compile issue related to const string 2015-10-16 04:38:35 -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 drivers/net/intel: use napi_complete_done() 2015-10-16 04:33:46 -07:00
i40e_txrx.h i40e/i40evf: moderate interrupts differently 2015-10-16 04:50:38 -07:00
i40e_type.h i40e: Add support for non-willing Apps 2015-10-16 04:48:11 -07:00
i40e_virtchnl_pf.c i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40e_virtchnl_pf.h i40e: Removed unused defines 2015-10-16 04:43:25 -07:00
i40e_virtchnl.h i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40e.h i40e/i40evf: moderate interrupts differently 2015-10-16 04:50:38 -07:00
Makefile i40e: Strip configfs code 2015-03-07 07:01:06 -08:00