> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Sunday, January 7, 2024 11:37 AM
> To: dev@dpdk.org
> Subject: unnecessary rx callbacks when zero packets
>
> 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.
Is it possible that the call back functions are maintaining statistics on zero
packet polls?
>
> 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