> > The ring is used only by af_xdp pmd itself, so no need to support > multi-producer and multi-consumer mode. This patch changes the ring > to single-producer and single-consumer mode, which could yield better > performance for addr enqueue and dequeue. > > Signed-off-by: Xiao Wang <xiao.w.w...@intel.com>
LGTM. I ran some rough numbers and measured a +~6.8% improvement for single-core single-pmd testpmd loopback (IRQs pinned to app core) and +~15.9% for two core (IRQs and app pinned to separate cores). Tested-by: Ciara Loftus <ciara.lof...@intel.com> Thanks, Ciara > --- > drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c > b/drivers/net/af_xdp/rte_eth_af_xdp.c > index d903e6c28..683e2a559 100644 > --- a/drivers/net/af_xdp/rte_eth_af_xdp.c > +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c > @@ -809,7 +809,7 @@ xsk_umem_info *xdp_umem_configure(struct > pmd_internals *internals, > umem->buf_ring = rte_ring_create(ring_name, > ETH_AF_XDP_NUM_BUFFERS, > rte_socket_id(), > - 0x0); > + RING_F_SP_ENQ | > RING_F_SC_DEQ); > if (umem->buf_ring == NULL) { > AF_XDP_LOG(ERR, "Failed to create rte_ring\n"); > goto err; > -- > 2.15.1