net/mlx5: fix Rx CQ doorbell synchronization on aarch64
The Rx completion queue doorbell field needs to be updated after the last CQE decompressed. For the weaker memory model processors, the compiler barrier is not sufficient to guarantee the order of these operations, so use the coherent I/O memory barrier to make sure these fields are updated in order. Fixes: 570acdb1da8a ("net/mlx5: add vectorized Rx/Tx burst for ARM") Cc: stable@dpdk.org Suggested-by: Gavin Hu <gavin.hu@arm.com> Signed-off-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
b67b4ecbde
commit
94a24aaf6c
@ -727,7 +727,7 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,
|
||||
rxq->decompressed -= n;
|
||||
}
|
||||
}
|
||||
rte_compiler_barrier();
|
||||
rte_cio_wmb();
|
||||
*rxq->cq_db = rte_cpu_to_be_32(rxq->cq_ci);
|
||||
return rcvd_pkt;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user