linux/drivers/net
Sudheer Mogilappagari 07d44190a3 i40e/i40evf: Detect and recover hung queue scenario
In VFs, there is a known issue which can cause writebacks
to not occur when interrupts are disabled and there are
less than 4 descriptors resulting in TX timeout. Timeout
can also occur due to lost interrupt.

The current implementation for detecting and recovering
from hung queues in the PF is problematic because it actually
actively encourages lost interrupts.  By triggering a SW
interrupt, interrupts are forced on.  If we are already in
napi_poll and an interrupt fires, napi_poll will not be
rescheduled and the interrupt is effectively lost; thereby
potentially *causing* hung queues.

This patch checks whether packets are being processed between
every watchdog cycle and determine potential hung queue and
fires triggers SW interrupt only for that particular queue.

Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-01-23 11:29:19 -08:00
..
appletalk
arcnet
bonding net: bonding: Replace mac address parsing 2017-12-20 12:47:29 -05:00
caif net: caif: remove redundant re-assignment of pointer pfrm 2018-01-22 10:51:56 -05:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
cris drivers/net: cris: Convert timers to use timer_setup() 2017-11-21 15:46:44 -08:00
dsa net: dsa: mv88e6xxx: Free ATU/VTU irq only when there is chip irq 2018-01-19 15:57:02 -05:00
ethernet i40e/i40evf: Detect and recover hung queue scenario 2018-01-23 11:29:19 -08:00
fddi
fjes
hamradio treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts 2017-11-21 16:35:54 -08:00
hippi hippi: Fix a Fix a possible sleep-in-atomic bug in rr_close 2017-12-13 14:52:57 -05:00
hyperv hv_netvsc: Use the num_online_cpus() for channel limit 2018-01-22 16:24:08 -05:00
ieee802154 net: ieee802154: adf7242: Rework IRQ and packet handling 2017-11-29 16:49:41 +01:00
ipvlan ipvlan: remove excessive packet scrubbing 2017-12-15 11:36:53 -05:00
netdevsim netdevsim: bpf: support fake map offload 2018-01-18 22:54:25 +01:00
phy phy: realtek: use new helpers for paged register access 2018-01-16 13:56:33 -05:00
plip
ppp ppp: unlock all_ppp_mutex before registering device 2018-01-15 13:22:03 -05:00
slip slip: sl_alloc(): remove unused parameter "dev_t line" 2017-12-08 14:41:02 -05:00
team
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-19 22:59:33 -05:00
vmxnet3 vmxnet3: increase default rx ring sizes 2017-11-30 14:06:58 -05:00
wan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-29 13:10:25 -08:00
wimax
wireless Less than a handful of changes: 2018-01-22 09:36:37 -05:00
xen-netback xen-netback: Fix logging message with spurious period after newline 2017-12-06 15:10:32 -05:00
dummy.c net: dummy: remove fake SR-IOV functionality 2017-12-03 00:27:58 +01:00
eql.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
geneve.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
gtp.c
ifb.c
Kconfig netdevsim: add software driver for testing offloads 2017-12-03 00:27:57 +01:00
LICENSE.SRC
loopback.c
macsec.c macsec: restore uAPI after addition of GCM-AES-256 2018-01-22 15:40:16 -05:00
macvlan.c macvlan: Fix one possible double free 2018-01-02 13:30:14 -05:00
macvtap.c
Makefile netdevsim: add software driver for testing offloads 2017-12-03 00:27:57 +01:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tun/tap: use ptr_ring instead of skb_array 2018-01-09 10:56:10 -05:00
thunderbolt.c net: thunderbolt: Stop using zero to mean no valid DMA mapping 2017-11-25 23:56:02 +09:00
tun.c tun: avoid calling xdp_rxq_info_unreg() twice 2018-01-22 16:55:18 -05:00
veth.c veth: set peer GSO values 2017-12-08 14:22:59 -05:00
virtio_net.c virtio_net: Add ethtool stats 2018-01-22 15:25:37 -05:00
vrf.c
vsockmon.c
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-12-22 11:16:31 -05:00
xen-netfront.c xen-netfront: enable device after manual module load 2018-01-08 14:17:03 -05:00