Segfaults are reported with TVM/LLVM models as NULL value is read by dequeue thread for the op handle. This is due synchronization issue between enqueue and dequeue threads.
This fix ensures the op handle written to internal request structure is committed before the dequeue threads read the handle value. Fixes: 88001b4d88de ("ml/cnxk: update fast path functions") Signed-off-by: Srikanth Yalavarthi <syalavar...@marvell.com> --- drivers/ml/cnxk/cnxk_ml_ops.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ml/cnxk/cnxk_ml_ops.c b/drivers/ml/cnxk/cnxk_ml_ops.c index 81866ceaa6..971362b242 100644 --- a/drivers/ml/cnxk/cnxk_ml_ops.c +++ b/drivers/ml/cnxk/cnxk_ml_ops.c @@ -1596,6 +1596,7 @@ cnxk_ml_enqueue_burst(struct rte_ml_dev *dev, uint16_t qp_id, struct rte_ml_op * jcmdq_full: queue->head = head; qp->stats.enqueued_count += count; + rte_wmb(); return count; } -- 2.42.0