RE: [EXTERNAL] Re: [Patch v7 5/5] RDMA/mana_ib: Send event to qp
From: Long Li <longli@microsoft.com>
Date: 2023-10-27 21:35:15
Also in:
linux-hyperv, linux-rdma, lkml
Subject: RE: [EXTERNAL] Re: [Patch v7 5/5] RDMA/mana_ib: Send event to qpquoted
-----Original Message----- From: Jason Gunthorpe <jgg@ziepe.ca> Sent: Monday, October 23, 2023 11:24 AM To: sharmaajay@linuxonhyperv.com Cc: Long Li <longli@microsoft.com>; Leon Romanovsky <leon@kernel.org>; Dexuan Cui [off-list ref]; Wei Liu [off-list ref]; David S. Miller [off-list ref]; Eric Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo Abeni [off-list ref]; linux- rdma@vger.kernel.org; linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Ajay Sharma [off-list ref] Subject: [EXTERNAL] Re: [Patch v7 5/5] RDMA/mana_ib: Send event to qp On Mon, Oct 16, 2023 at 03:12:02PM -0700,sharmaajay@linuxonhyperv.comquoted
wrote:quoted
diff --git a/drivers/infiniband/hw/mana/qp.cb/drivers/infiniband/hw/mana/qp.c index ef3275ac92a0..19fae28985c3 100644--- a/drivers/infiniband/hw/mana/qp.c +++ b/drivers/infiniband/hw/mana/qp.c@@ -210,6 +210,8 @@ static int mana_ib_create_qp_rss(struct ib_qp*ibqp, struct ib_pd *pd,quoted
wq->id = wq_spec.queue_index; cq->id = cq_spec.queue_index; + xa_store(&mib_dev->rq_to_qp_lookup_table, wq->id, qp,GFP_KERNEL);quoted
+A store with no erase? A load with no locking? This can't be right JasonThis wq->id is assigned from the HW and is guaranteed to be unique. May be I am not following why do we need a lock here. Can you please explain ? Ajay
I think we need to check the return value of xa_store(), and call xa_erase() in mana_ib_destroy_qp(). wq->id is generated by the hardware. If we believe in hardware always behaves in good manner, we don't need a lock. Thanks, Long