opnsense-src/sys/dev/gve
Jasper Tran O'Leary 3d2957336c gve: Add callout to detect and handle TX timeouts
A TX timeout occurs when the driver allocates resources on a TX queue
for a packet to be sent, prompts the hardware to send the packet, but
does not receive a completion for the packet within a given timeout
period. An accumulation of TX timeouts can cause one or more queues to
run out of space and cause the entire driver to become stuck.

This commit adds a lockless timer service that runs periodically and
checks queues for timed out packets. In the event we detect a timeout,
we prompt the completion phase taskqueue to process completions. Upon
the next inspection of the queue we still detect timed out packets, if
the last "kick" occurred within a fixed cooldown window, we opt to
reset the driver, even if the prior kick successfully freed timed out
packets.

Signed-off-by: Jasper Tran O'Leary <jtranoleary@google.com>

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D50385
2025-05-20 23:50:59 +00:00
..
gve.h gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00
gve_adminq.c gve: Add feature to change TX/RX ring size 2025-04-04 23:24:49 +00:00
gve_adminq.h gve: Use load-acquire to fetch generation bits 2025-05-20 23:50:59 +00:00
gve_desc.h gve: Do minor cleanup and bump version 2025-02-14 15:08:23 +00:00
gve_dqo.h gve: Use load-acquire to fetch generation bits 2025-05-20 23:50:59 +00:00
gve_main.c gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00
gve_plat.h gve: Add DQO RDA support 2024-11-06 15:06:41 +00:00
gve_qpl.c gve: Allocate qpl per ring at ring allocation time 2025-04-04 23:24:49 +00:00
gve_register.h
gve_rx.c gve: Add feature to adjust RX/TX queue counts 2025-04-04 23:24:49 +00:00
gve_rx_dqo.c gve: Use load-acquire to fetch generation bits 2025-05-20 23:50:59 +00:00
gve_sysctl.c gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00
gve_tx.c gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00
gve_tx_dqo.c gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00
gve_utils.c gve: Add callout to detect and handle TX timeouts 2025-05-20 23:50:59 +00:00