mirror of
https://github.com/opnsense/src.git
synced 2026-06-22 15:11:03 -04:00
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 |
||
|---|---|---|
| .. | ||
| gve.h | ||
| gve_adminq.c | ||
| gve_adminq.h | ||
| gve_desc.h | ||
| gve_dqo.h | ||
| gve_main.c | ||
| gve_plat.h | ||
| gve_qpl.c | ||
| gve_register.h | ||
| gve_rx.c | ||
| gve_rx_dqo.c | ||
| gve_sysctl.c | ||
| gve_tx.c | ||
| gve_tx_dqo.c | ||
| gve_utils.c | ||