linux/drivers/net/ethernet
Eric Dumazet 01f0f42534 mlx4: do not fire tasklet unless necessary
All rx and rx netdev interrupts are handled by respectively
by mlx4_en_rx_irq() and mlx4_en_tx_irq() which simply schedule a NAPI.

But mlx4_eq_int() also fires a tasklet to service all items that were
queued via mlx4_add_cq_to_tasklet(), but this handler was not called
unless user cqe was handled.

This is very confusing, as "mpstat -I SCPU ..." show huge number of
tasklet invocations.

This patch saves this overhead, by carefully firing the tasklet directly
from mlx4_add_cq_to_tasklet(), removing four atomic operations per IRQ.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Tariq Toukan <tariqt@mellanox.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Acked-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-17 10:55:22 -05:00
..
3com drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
8390 Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
adaptec net: adaptec: starfire: add checks for dma mapping errors 2017-01-29 19:04:11 -05:00
adi drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
aeroflex aeroflex/greth: use napi_complete_done() 2017-02-05 16:11:57 -05:00
agere drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
alacritech net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
allwinner
alteon Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
altera drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
amazon net/ena: update driver version to 1.1.2 2017-02-09 22:27:06 -05:00
amd pcnet32: fix BNC/AUI port on AM79C970A 2017-02-14 14:26:58 -05:00
apm xgene_enet: remove bogus forward declarations 2017-02-02 17:12:20 -05:00
apple
aquantia net: ethernet: aquantia: switch to pci_alloc_irq_vectors 2017-02-15 13:05:29 -05:00
arc drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
atheros atl1e: add GRO support 2017-02-03 11:13:17 -05:00
aurora
broadcom bnxt_en: Added PCI IDs for BCM57452 and BCM57454 ASICs 2017-02-12 22:18:49 -05:00
brocade drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
cadence net: macb: fix build errors when linux/phy*.h is removed from net/dsa.h 2017-02-10 13:51:02 -05:00
calxeda drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-11 02:31:11 -05:00
chelsio cxgb4: Remove redundant code in t4_uld_clean_up() 2017-02-16 14:32:52 -05:00
cirrus ep93xx_eth: add GRO support 2017-02-05 16:11:57 -05:00
cisco enic: add vxlan offload on tx path 2017-02-09 17:24:29 -05:00
davicom
dec drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
dlink net: dlink: sundance: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
emulex be2net: get rid of custom busy poll code 2017-02-03 16:06:55 -05:00
ezchip drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
faraday net: faraday: ftmac100: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-16 19:34:01 -05:00
fujitsu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hisilicon net: hip04: Omit private ndo_get_stats function 2017-02-14 15:03:21 -05:00
hp
i825xx
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-16 19:34:01 -05:00
intel ixgbe: Don't bother clearing buffer memory for descriptor rings 2017-02-16 04:02:44 -08:00
marvell net: mvneta: fix build errors when linux/phy*.h is removed from net/dsa.h 2017-02-10 13:51:03 -05:00
mediatek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-28 10:33:06 -05:00
mellanox mlx4: do not fire tasklet unless necessary 2017-02-17 10:55:22 -05:00
micrel net: micrel: ks8851_mll: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
microchip net: microchip: encx24j600: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
moxa drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
myricom net: myricom: myri10ge: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
natsemi net: natsemi: ns83820: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
neterion net: neterion: vxge: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
netronome nfp: add the PF driver 2017-02-10 15:52:27 -05:00
nuvoton net: nuvoton: w90p910: use new api ethtool_{get|set}_link_ksettings 2017-02-12 22:32:17 -05:00
nvidia drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
nxp drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
oki-semi pch_gbe: Omit private ndo_get_stats function 2017-02-14 15:03:57 -05:00
packetengines Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pasemi drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
qlogic qede: Add driver support for PTP 2017-02-15 12:42:53 -05:00
qualcomm net: qcom/emac: fix a sizeof() typo 2017-02-13 22:24:35 -05:00
rdc
realtek 8139cp: use napi_complete_done() 2017-02-05 16:11:57 -05:00
renesas sh_eth: fix wakeup event reporting from MagicPacket 2017-02-01 12:53:59 -05:00
rocker drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
samsung drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
seeq
sfc sfc: only fall back to a lower interrupt mode if it is supported 2017-02-14 12:43:18 -05:00
sgi Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
silan
sis Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
smsc epic100: use napi_complete_done() 2017-02-05 16:11:57 -05:00
stmicro net: stmmac: invert the logic for dumping regs 2017-02-15 13:20:56 -05:00
sun ldmvsw: disable tso and gso for bridge operations 2017-02-14 13:04:11 -05:00
tehuti drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-16 19:34:01 -05:00
tile drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
toshiba drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
tundra drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
via drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
wiznet drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-16 19:34:01 -05:00
xircom Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
xscale
dnet.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
dnet.h
ec_bhf.c net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
ethoc.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
fealnx.c net: fealnx: use new api ethtool_{get|set}_link_ksettings 2017-01-02 16:59:10 -05:00
jme.c net: jme: use new api ethtool_{get|set}_link_ksettings 2017-01-17 11:44:27 -05:00
jme.h net: jme: use new api ethtool_{get|set}_link_ksettings 2017-01-17 11:44:27 -05:00
Kconfig net: ethernet: aquantia: Integrate AQtion 2.5/5 GB NIC driver 2017-01-24 15:03:41 -05:00
korina.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
lantiq_etop.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
Makefile net: ethernet: aquantia: Integrate AQtion 2.5/5 GB NIC driver 2017-01-24 15:03:41 -05:00
netx-eth.c