aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Kiyanovski <akiyano@amazon.com>2026-07-14 20:20:06 +0000
committerArthur Kiyanovski <akiyano@FreeBSD.org>2026-07-16 18:20:41 +0000
commitf08def9ed97f45700eb0611a3fd9240210c9303e (patch)
treecc35766b9e6b791f8d05a9112e0caf891ae06c3f
parentfc186c24b1e72fa3eba91c166f7a554a5cea5828 (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.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 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))))