net/af_xdp: revert change to SP/SC ring for copy mode

Message ID 20200625133950.8028-1-ciara.loftus@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/af_xdp: revert change to SP/SC ring for copy mode |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-testing success Testing PASS

Commit Message

Loftus, Ciara June 25, 2020, 1:39 p.m. UTC
  This reverts commit 489e0b5b33209d929dc490cc591abd840dcefdfc.

The ring used in copy mode should be multi-producer multi-consumer
because enqueues and dequeues to the ring are performed on both the rx
and tx paths, which can be running on different threads.

Fixes: 489e0b5b3320 ("net/af_xdp: use single producer/consumer ring")
Cc: stable@dpdk.org

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ferruh Yigit June 30, 2020, 2:14 p.m. UTC | #1
On 6/25/2020 2:39 PM, Ciara Loftus wrote:
> This reverts commit 489e0b5b33209d929dc490cc591abd840dcefdfc.
> 
> The ring used in copy mode should be multi-producer multi-consumer
> because enqueues and dequeues to the ring are performed on both the rx
> and tx paths, which can be running on different threads.
> 
> Fixes: 489e0b5b3320 ("net/af_xdp: use single producer/consumer ring")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 06124ba789..2fab916d75 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -820,7 +820,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(),
-					 RING_F_SP_ENQ | RING_F_SC_DEQ);
+					 0x0);
 	if (umem->buf_ring == NULL) {
 		AF_XDP_LOG(ERR, "Failed to create rte_ring\n");
 		goto err;