Thread (16 messages) 16 messages, 5 authors, 2023-10-30

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 qp

quoted
-----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.com
quoted
wrote:
quoted
diff --git a/drivers/infiniband/hw/mana/qp.c
b/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

Jason
This 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help