aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Kiyanovski <akiyano@amazon.com>2026-07-14 20:20:06 +0000
committerArthur Kiyanovski <akiyano@FreeBSD.org>2026-08-01 14:06:36 +0000
commit109a12abcb57ca8919e0142fe12608e25c07aace (patch)
tree82bc8734b67dbc68bc85fa8ae3e776b163147a08
parent03125b959758a5bfed0e4f10aa36a33fed279097 (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 (cherry picked from commit f08def9ed97f45700eb0611a3fd9240210c9303e)
-rw-r--r--sys/dev/ena/ena_datapath.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ena/ena_datapath.c b/sys/dev/ena/ena_datapath.c
index 23cbf62b5143..4fbdb8daaf58 100644
--- a/sys/dev/ena/ena_datapath.c
+++ b/sys/dev/ena/ena_datapath.c
@@ -100,8 +100,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))))