linux/drivers/net
Jesse Brandeburg 0bcd952fee ethernet/intel: consolidate NAPI and NAPI exit
While reviewing code, I noticed that Eric Dumazet recommends that
drivers check the return code of napi_complete_done, and use that
to decide to enable interrupts or not when exiting poll.  One of
the Intel drivers was already fixed (ixgbe).

Upon looking at the Intel drivers as a whole, we are handling our
polling and NAPI exit in a few different ways based on whether we
have multiqueue and whether we have Tx cleanup included. Several
drivers had the bug of exiting NAPI with return 0, which appears
to mess up the accounting in the stack.

Consolidate all the NAPI routines to do best known way of exiting
and to just mostly look like each other.
1) check return code of napi_complete_done to control interrupt enable
2) return the actual amount of work done.
3) return budget immediately if need NAPI poll again

Tested the changes on e1000e with a high interrupt rate set, and
it shows about an 8% reduction in the CPU utilization when busy
polling because we aren't re-enabling interrupts when we're about
to be polled.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-11-21 10:35:23 -08:00
..
appletalk
arcnet mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
bonding bonding/802.3ad: fix link_failure_count tracking 2018-11-04 16:44:44 -08:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-11-19 10:55:00 -08:00
dsa net: dsa: microchip: rename ksz_9477_reg.h to ksz9477_reg.h 2018-11-20 20:57:12 -08:00
ethernet ethernet/intel: consolidate NAPI and NAPI exit 2018-11-21 10:35:23 -08:00
fddi FDDI: defza: Make the driver version string constant 2018-11-07 21:53:31 -08:00
fjes
hamradio Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-10-24 14:43:41 +01:00
hippi
hyperv hv_netvsc: fix vf serial matching with pci slot info 2018-10-15 22:58:11 -07:00
ieee802154
ipvlan
netdevsim
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-11-19 10:55:00 -08:00
plip
ppp Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-10-25 16:43:35 -07:00
slip change semantics of ldisc ->compat_ioctl() 2018-10-13 00:50:53 -04:00
team netpoll: allow cleanup to be synchronous 2018-10-19 17:01:43 -07:00
usb usbnet: smsc95xx: check for csum being in last four bytes 2018-11-16 20:16:19 -08:00
vmxnet3
wan net/wan/fsl_ucc_hdlc: add BQL support 2018-11-07 22:21:25 -08:00
wimax
wireless brcmfmac: Use standard SKB list accessors in brcmf_sdiod_sglist_rw. 2018-11-10 16:31:15 -08:00
xen-netback
dummy.c
eql.c
geneve.c geneve: Initialize addr6 with memset 2018-11-17 22:03:06 -08:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c net: loopback: clear skb->tstamp before netif_rx() 2018-10-20 01:01:28 -07:00
macsec.c macsec: let the administrator set UP state even if lowerdev is down 2018-10-28 19:26:42 -07:00
macvlan.c netpoll: allow cleanup to be synchronous 2018-10-19 17:01:43 -07:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c ntb_netdev: Simplify remove with client device drvdata 2018-10-31 21:20:05 -04:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-11-19 10:55:00 -08:00
veth.c net: Add extack argument to rtnl_create_link 2018-11-06 15:00:45 -08:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-19 11:03:06 -07:00
vrf.c vrf: mark skb for multicast or link-local as enslaved to VRF 2018-11-07 16:12:39 -08:00
vsockmon.c
vxlan.c vxlan: Allow configuration of DF behaviour 2018-11-08 17:13:08 -08:00
xen-netfront.c xen/netfront: remove unnecessary wmb 2018-11-09 15:15:17 -08:00