diff options
| author | Arthur Kiyanovski <akiyano@amazon.com> | 2026-07-14 20:20:06 +0000 |
|---|---|---|
| committer | Arthur Kiyanovski <akiyano@FreeBSD.org> | 2026-07-16 18:20:41 +0000 |
| commit | f08def9ed97f45700eb0611a3fd9240210c9303e (patch) | |
| tree | cc35766b9e6b791f8d05a9112e0caf891ae06c3f | |
| parent | fc186c24b1e72fa3eba91c166f7a554a5cea5828 (diff) | |
ena: Swap cleanup order
As RX processing is heavier than TX completions processing, swap the
order and process TX completions first, in order to avoid starving the
completions and causing potential missing TX completions.
Submitted by: Ofir Tabachnik <ofirt@amazon.com>
MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Reviewed by: cperciva
Differential Revision: https://reviews.freebsd.org/D58239
| -rw-r--r-- | sys/dev/ena/ena_datapath.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ena/ena_datapath.c b/sys/dev/ena/ena_datapath.c index 91e3e3b6e4cd..1e5298c2d984 100644 --- a/sys/dev/ena/ena_datapath.c +++ b/sys/dev/ena/ena_datapath.c @@ -98,8 +98,8 @@ ena_cleanup(void *arg, int pending) atomic_store_8(&rx_ring->first_interrupt, 1); for (i = 0; i < ENA_CLEAN_BUDGET; ++i) { - rx_again = ena_rx_cleanup(rx_ring); tx_again = ena_tx_cleanup(tx_ring); + rx_again = ena_rx_cleanup(rx_ring); if (unlikely(((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) || (ENA_FLAG_ISSET(ENA_FLAG_TRIGGER_RESET, adapter)))) |
