linux/drivers/net/ethernet
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
..
3com
8390 net: mac8390: Allow modular build 2015-09-29 21:11:12 -07:00
adaptec
adi
aeroflex drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
agere
allwinner
alteon
altera
amd drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-09-26 16:08:27 -07:00
apple net: macmace: Allow modular build 2015-09-29 21:11:13 -07:00
arc net: arc: Fix module autoload for OF platform driver 2015-09-21 16:08:20 -07:00
atheros drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
broadcom drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
brocade bna: fix error handling 2015-09-29 13:49:53 -07:00
cadence
calxeda
cavium drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
chelsio cxgb4: Enhance driver to update FW, when FW is too old 2015-10-11 04:57:58 -07:00
cirrus
cisco enic: do hang reset only in case of tx timeout 2015-10-05 03:51:35 -07:00
davicom
dec drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
dlink
emulex drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ezchip
faraday
freescale drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
fujitsu
hisilicon drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
hp
i825xx
ibm drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
icplus
intel i40e/i40evf: moderate interrupts differently 2015-10-16 04:50:38 -07:00
marvell drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
mellanox drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
micrel net: ks8851: Export OF module alias information 2015-09-17 21:24:02 -07:00
microchip net: encx24j600: Fix typos in Kconfig 2015-10-11 05:26:10 -07:00
moxa net: moxa: Fix module autoload for OF platform driver 2015-09-21 16:09:02 -07:00
myricom
natsemi
neterion drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
nuvoton
nvidia
nxp
octeon drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
oki-semi drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
packetengines
pasemi
qlogic drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
qualcomm
rdc
realtek drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
renesas ravb: Add support for r8a7795 SoC 2015-10-03 05:05:21 -07:00
rocker rocker: remove nowait from switchdev callbacks. 2015-10-15 06:09:51 -07:00
samsung
seeq
sfc sfc: fully reset if MC_REBOOT event received without warm_boot_count increment 2015-10-12 05:35:25 -07:00
sgi
silan
sis
smsc net: smc91x: convert pxa dma to dmaengine 2015-09-17 13:36:52 -07:00
stmicro net: stmmac: avoid using timespec 2015-10-05 03:16:41 -07:00
sun drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
synopsys
tehuti drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ti drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
tile
toshiba
tundra
via net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected 2015-09-25 12:36:58 -07:00
wiznet
xilinx drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c net/ethoc: support big-endian register layout 2015-09-23 15:33:15 -07:00
fealnx.c
jme.c net: jme: use kzalloc() instead of kmalloc+memset 2015-09-09 17:06:00 -07:00
jme.h
Kconfig
korina.c
lantiq_etop.c
Makefile
netx-eth.c