linux/drivers/net/ethernet/intel/i40evf
Alan Brady 04d4105174 i40e/i40evf: use SW variables for hang detection
The i40e_detect_recover_hung function uses the i40e_get_tx_pending
function to determine if there are packets stalled on the ring.
i40e_get_tx_pending calculates the pending packets using the head
writeback value and HW tail.  If the queue is stopped and we lose the
interrupt to update our next_to_clean then we a) won't get another
interrupt to clean because queue is stopped b) we won't catch the
problem with i40e_detect_recover_hung because the HW values look like
there's no packets waiting to be transmitted.  Using the SW values we
can catch the issue because next_to_clean will be out of sync with head
writeback.

This has the added benefit being less CPU intensive because we don't
need to reach into the hardware to get the values.

Signed-off-by: Alan Brady <alan.brady@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-02-26 12:33:27 -08:00
..
i40e_adminq_cmd.h i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_adminq.c i40e: cleanup unnecessary parens 2018-01-26 13:23:28 -08:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_alloc.h
i40e_common.c i40e: Add returning AQ critical error to SW 2018-01-26 13:22:56 -08:00
i40e_devids.h i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.h
i40e_osdep.h i40evf: remove unnecessary __packed 2017-07-26 03:25:21 -07:00
i40e_prototype.h i40e: change ppp name to ddp 2018-01-10 12:41:21 -08:00
i40e_register.h i40evf: Remove PF specific register definitions from the VF 2015-08-26 15:05:17 -07:00
i40e_status.h i40e: Add returning AQ critical error to SW 2018-01-26 13:22:56 -08:00
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e/i40evf: use SW variables for hang detection 2018-02-26 12:33:27 -08:00
i40e_txrx.h i40e/i40evf: Add support for new mechanism of updating adaptive ITR 2018-02-12 11:50:10 -08:00
i40e_type.h i40e/i40evf: Enable NVMUpdate to retrieve AdminQ and add preservation flags for NVM update 2018-01-23 11:29:19 -08:00
i40evf_client.c i40evf: fix client notify of l2 params 2017-11-21 23:37:58 -08:00
i40evf_client.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i40evf_ethtool.c i40evf: Alloc queues for ADq on VF 2018-02-14 09:43:22 -08:00
i40evf_main.c i40evf: Fix double locking the same resource 2018-02-26 12:29:41 -08:00
i40evf_virtchnl.c i40evf: Add support to apply cloud filters 2018-02-14 09:43:22 -08:00
i40evf.h i40evf: Add support to apply cloud filters 2018-02-14 09:43:22 -08:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00