unnecessary rx callbacks when zero packets

Stephen Hemminger stephen at networkplumber.org
Sun Jan 7 18:37:21 CET 2024


I noticed while looking at packet capture that currently the receive callbacks
get called even if there are no packets. This seems unnecessary since if
nb_rx is zero, then there are no packets to look at.  My one concern is that
an application could be using callbacks as some form of scheduling mechanism
which would be broken.

The change would be:


diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index 21e3a21903ec..f64bf977c46e 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -6077,7 +6077,7 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
        nb_rx = p->rx_pkt_burst(qd, rx_pkts, nb_pkts);
 
 #ifdef RTE_ETHDEV_RXTX_CALLBACKS
-       {
+       if (nb_rx > 0) {
                void *cb;
 
                /* rte_memory_order_release memory order was used when the


More information about the dev mailing list