[dpdk-dev] [PATCH] event/cnxk: fix reading stale Tx queue depth

pbhagavatula at marvell.com pbhagavatula at marvell.com
Tue Jul 20 09:04:32 CEST 2021


From: Pavan Nikhilesh <pbhagavatula at marvell.com>

Reads to Tx queue FC memory need to be atomic to avoid cores using
same Tx queue spinning on stale values.

Fixes: 313e884a22fd ("event/cnxk: support Tx adapter fast path")

Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
---
 Please squash this into next-event tree

 drivers/event/cnxk/cn9k_worker.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/event/cnxk/cn9k_worker.h b/drivers/event/cnxk/cn9k_worker.h
index cc1e141957..9b2a0bf882 100644
--- a/drivers/event/cnxk/cn9k_worker.h
+++ b/drivers/event/cnxk/cn9k_worker.h
@@ -420,7 +420,8 @@ NIX_RX_FASTPATH_MODES
 static __rte_always_inline void
 cn9k_sso_txq_fc_wait(const struct cn9k_eth_txq *txq)
 {
-	while (!(((txq)->nb_sqb_bufs_adj - *(txq)->fc_mem)
+	while (!((txq->nb_sqb_bufs_adj -
+		  __atomic_load_n(txq->fc_mem, __ATOMIC_RELAXED))
 		 << (txq)->sqes_per_sqb_log2))
 		;
 }
--
2.17.1



More information about the dev mailing list