v5.9-rc1 nvme_rdma regression?

Christoph Hellwig hch at lst.de
Tue Jun 23 04:44:20 EDT 2020


On Tue, Jun 23, 2020 at 10:42:32AM +0200, Christoph Hellwig wrote:
> On Sat, Jun 20, 2020 at 07:40:00PM -0700, Bart Van Assche wrote:
> > Reverting the following two commits on top of Jens' for-next branch makes
> > this test pass again:
> > * nvme-rdma: factor out a nvme_rdma_end_request helper
> > * nvme: use blk_mq_complete_request_remote to avoid an indirect function call
> > 
> > Do you want to analyze this further or do you perhaps expect me to attempt
> > to come up with a fix?
> 
> Just to clarify:  only reverting
> "nvme: use blk_mq_complete_request_remote to avoid an indirect function call"
> 
> does not fix the issue?

Actually, please just try this patch:


diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 97b1054efb8409..6d5c4495f352ea 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -1696,9 +1696,10 @@ static void nvme_rdma_process_nvme_rsp(struct nvme_rdma_queue *queue,
 			nvme_rdma_error_recovery(queue->ctrl);
 		}
 		/* the local invalidation completion will end the request */
-	} else {
-		nvme_rdma_end_request(req);
+		return;
 	}
+
+	nvme_rdma_end_request(req);
 }
 
 static void nvme_rdma_recv_done(struct ib_cq *cq, struct ib_wc *wc)



More information about the Linux-nvme mailing list