event/cnxk: fix reading stale Tx queue depth
Checks
Commit Message
From: Pavan Nikhilesh <pbhagavatula@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@marvell.com>
---
Please squash this into next-event tree
drivers/event/cnxk/cn9k_worker.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--
2.17.1
Comments
On Tue, Jul 20, 2021 at 12:35 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@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@marvell.com>
Applied to dpdk-next-net-eventdev/for-main. Thanks
@@ -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))
;
}