Re: [PATCH] rdma_rxe: call comp_handler without holding cq->cq_lock

From: Zhu Yanjun
Date: Fri Aug 15 2025 - 00:26:34 EST



===
diff --git a/drivers/infiniband/sw/rxe/rxe_comp.c b/drivers/infiniband/sw/rxe/rxe_comp.c
index a5b2b62f596b..a10a173e53cf 100644
--- a/drivers/infiniband/sw/rxe/rxe_comp.c
+++ b/drivers/infiniband/sw/rxe/rxe_comp.c
@@ -454,7 +454,7 @@ static void do_complete(struct rxe_qp *qp, struct rxe_send_wqe *wqe)
        queue_advance_consumer(qp->sq.queue, QUEUE_TYPE_FROM_CLIENT);

        if (post)
-               rxe_cq_post(qp->scq, &cqe, 0);
+               while (rxe_cq_post(qp->scq, &cqe, 0) == -EBUSY);

Just now the maillist notified the mail was not sent successfully. Thus I resend it now.


Do you make tests with your commit in the local hosts?


I have applied your commit and made tests in my local host. I run the tests for 10000 times.

Sometimes problems occurred. I am not sure if this problem is related with this commit or not.

I will make further investigations about this problem.

Yanjun.Zhu