linux/drivers/net/ethernet/intel/ixgbe
Maciej Fijalkowski f3d9f7fa7f ixgbe: fix ndo_xdp_xmit() workloads
Currently ixgbe driver checks periodically in its watchdog subtask if
there is anything to be transmitted (considering both Tx and XDP rings)
under state of carrier not being 'ok'. Such event is interpreted as Tx
hang and therefore results in interface reset.

This is currently problematic for ndo_xdp_xmit() as it is allowed to
produce descriptors when interface is going through reset or its carrier
is turned off.

Furthermore, XDP rings should not really be objects of Tx hang
detection. This mechanism is rather a matter of ndo_tx_timeout() being
called from dev_watchdog against Tx rings exposed to networking stack.

Taking into account issues described above, let us have a two fold fix -
do not respect XDP rings in local ixgbe watchdog and do not produce Tx
descriptors in ndo_xdp_xmit callback when there is some problem with
carrier currently. For now, keep the Tx hang checks in clean Tx irq
routine, but adjust it to not execute for XDP rings.

Cc: Tobias Böhm <tobias.boehm@hetzner-cloud.de>
Reported-by: Marcus Wichelmann <marcus.wichelmann@hetzner-cloud.de>
Closes: https://lore.kernel.org/netdev/eca1880f-253a-4955-afe6-732d7c6926ee@hetzner-cloud.de/
Fixes: 6453073987 ("ixgbe: add initial support for xdp redirect")
Fixes: 33fdc82f08 ("ixgbe: add support for XDP_TX action")
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Marcus Wichelmann <marcus.wichelmann@hetzner-cloud.de>
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20250819222000.3504873-5-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-08-20 18:46:30 -07:00
..
devlink ixgbe: prevent from unwanted interface name changes 2025-08-12 13:24:09 -07:00
ixgbe_82598.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_82599.c ixgbe: add E610 functions getting PBA and FW ver info 2025-04-15 07:36:32 -07:00
ixgbe_common.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_common.h ixgbe: downgrade logging of unsupported VF API version to debug 2024-12-03 10:11:53 -08:00
ixgbe_dcb_82598.c
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c ixgbe: wrap netdev_priv() usage 2025-04-15 07:36:32 -07:00
ixgbe_dcb.c
ixgbe_dcb.h
ixgbe_debugfs.c
ixgbe_e610.c ixgbe: use libie adminq descriptors 2025-07-24 09:25:03 -07:00
ixgbe_e610.h ixgbe: use libie adminq descriptors 2025-07-24 09:25:03 -07:00
ixgbe_ethtool.c eth: ixgbe: migrate to new RXFH callbacks 2025-06-16 18:14:52 -07:00
ixgbe_fcoe.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_fcoe.h
ixgbe_fw_update.c ixgbe: use libie adminq descriptors 2025-07-24 09:25:03 -07:00
ixgbe_fw_update.h ixgbe: add device flash update via devlink 2025-04-15 07:36:32 -07:00
ixgbe_ipsec.c ipsec-next-2025-05-23 2025-05-26 18:32:48 +02:00
ixgbe_ipsec.h
ixgbe_lib.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_main.c ixgbe: fix ndo_xdp_xmit() workloads 2025-08-20 18:46:30 -07:00
ixgbe_mbx.c ixgbe: Enable link management in E610 device 2024-12-20 10:14:03 -08:00
ixgbe_mbx.h ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_model.h
ixgbe_phy.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_phy.h ixgbe: Correct BASE-BX10 compliance code 2024-12-03 10:11:53 -08:00
ixgbe_ptp.c Networking changes for 6.17. 2025-07-30 08:58:55 -07:00
ixgbe_sriov.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_sriov.h ixgbe: check for MDD events 2025-07-03 09:39:03 -07:00
ixgbe_sysfs.c
ixgbe_txrx_common.h
ixgbe_type_e610.h ixgbe: use libie adminq descriptors 2025-07-24 09:25:03 -07:00
ixgbe_type.h ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_x540.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_x540.h ixgbe: Add ixgbe_x540 multiple header inclusion protection 2024-12-20 10:14:02 -08:00
ixgbe_x550.c ixgbe: spelling corrections 2025-07-03 09:39:04 -07:00
ixgbe_x550.h ixgbe: add MDD support 2025-07-03 09:39:03 -07:00
ixgbe_xsk.c ixgbe: xsk: resolve the negative overflow of budget in ixgbe_xmit_zc 2025-08-20 18:46:30 -07:00
ixgbe.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-07-17 11:00:33 -07:00
Makefile ixgbe: devlink: add devlink region support for E610 2025-04-29 15:13:44 -07:00