linux_dsm_epyc7002/drivers/net/ixgbe
John Fastabend c84d324c77 ixgbe: rework Tx hang detection to fix reoccurring false Tx hangs
The Tx hang logic has been known to detect false hangs when
the device is receiving pause frames or has delayed processing
for some other reason.

This patch makes the logic more robust and resolves these
known issues. The old logic checked to see if the device
was paused by querying the HW then the hang logic was
aborted if the device was currently paused. This check was
racy because the device could have been in the pause state
any time up to this check. The other operation of the
hang logic is to verify the Tx ring is still advancing
the old logic checked the EOP timestamp. This is not
sufficient to determine the ring is not advancing but
only infers that it may be moving slowly.

Here we add logic to track the number of completed Tx
descriptors and use the adapter stats to check if any
pause frames have been received since the previous Tx
hang check. This way we avoid racing with the HW
register and do not detect false hangs if the ring is
advancing slowly.

This patch is primarily the work of Jesse Brandeburg. I
clean it up some and fixed the PFC checking.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2010-11-16 19:27:12 -08:00
..
ixgbe_82598.c ixgbe: DCB set PFC high and low water marks per data sheet specs 2010-11-16 19:26:44 -08:00
ixgbe_82599.c ixgbe: declare functions as static 2010-10-14 10:49:43 -07:00
ixgbe_common.c ixgbe: DCB set PFC high and low water marks per data sheet specs 2010-11-16 19:26:44 -08:00
ixgbe_common.h ixgbe: declare functions as static 2010-10-14 10:49:43 -07:00
ixgbe_dcb_82598.c ixgbe: DCB set PFC high and low water marks per data sheet specs 2010-11-16 19:26:44 -08:00
ixgbe_dcb_82598.h ixgbe: declare functions as static 2010-10-14 10:49:43 -07:00
ixgbe_dcb_82599.c ixgbe: DCB set PFC high and low water marks per data sheet specs 2010-11-16 19:26:44 -08:00
ixgbe_dcb_82599.h ixgbe: DCB, fix TX hang occurring in stress condition with PFC 2010-10-28 10:19:00 -07:00
ixgbe_dcb_nl.c ixgbe: use netif_<level> instead of netdev_<level> 2010-07-05 18:50:55 -07:00
ixgbe_dcb.c ixgbe: DCB: credit max only needs to be gt TSO size for 82598 2010-11-16 19:26:45 -08:00
ixgbe_dcb.h ixgbe: DCB: credit max only needs to be gt TSO size for 82598 2010-11-16 19:26:45 -08:00
ixgbe_ethtool.c ixgbe: Cleanup DCB logic, whitespace, and comments in ixgbe_ethtool.c 2010-11-16 19:27:05 -08:00
ixgbe_fcoe.c ixgbe: add a refcnt when turning on/off FCoE offload capability 2010-10-21 03:55:23 -07:00
ixgbe_fcoe.h ixgbe: add a refcnt when turning on/off FCoE offload capability 2010-10-21 03:55:23 -07:00
ixgbe_main.c ixgbe: rework Tx hang detection to fix reoccurring false Tx hangs 2010-11-16 19:27:12 -08:00
ixgbe_mbx.c ixgbe: update copyright info 2010-10-21 03:55:21 -07:00
ixgbe_mbx.h ixgbe: update copyright info 2010-10-21 03:55:21 -07:00
ixgbe_phy.c ixgbe: add 1g PHY support for 82599 2010-06-30 14:27:40 -07:00
ixgbe_phy.h ixgbe: add 1g PHY support for 82599 2010-06-30 14:27:40 -07:00
ixgbe_sriov.c ixgbe: move adapter into pci_dev driver data instead of netdev 2010-11-16 19:26:54 -08:00
ixgbe_sriov.h ixgbe: update copyright info 2010-10-21 03:55:21 -07:00
ixgbe_type.h ixgbe: add WOL support for backplane adapters 2010-11-16 19:27:05 -08:00
ixgbe.h ixgbe: rework Tx hang detection to fix reoccurring false Tx hangs 2010-11-16 19:27:12 -08:00
Makefile Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-01-23 00:31:06 -08:00