Re: [PATCH v2 1/1] RDMA/mana_ib: Add EQ interrupt support to mana ib driver.
From: Leon Romanovsky <leon@kernel.org>
Date: 2023-06-11 18:19:02
Also in:
linux-hyperv, linux-rdma
From: Leon Romanovsky <leon@kernel.org>
Date: 2023-06-11 18:19:02
Also in:
linux-hyperv, linux-rdma
On Tue, Jun 06, 2023 at 03:17:47PM +0000, Wei Hu wrote:
Add EQ interrupt support for mana ib driver. Allocate EQs per ucontext
to receive interrupt. Attach EQ when CQ is created. Call CQ interrupt
handler when completion interrupt happens. EQs are destroyed when
ucontext is deallocated.
The change calls some public APIs in mana ethernet driver to
allocate EQs and other resources. Ehe EQ process routine is also shared
by mana ethernet and mana ib drivers.
Co-developed-by: Ajay Sharma <redacted>
Signed-off-by: Ajay Sharma <redacted>
Signed-off-by: Wei Hu <redacted>
---
v2: Use ibdev_dbg to print error messages and return -ENOMEN
when kzalloc fails.<...>
+ if (atomic_read(&ibcq->usecnt) == 0) {What exactly are you checking here? And in all places where you access ibcq->usecnt?
+ mana_ib_gd_destroy_dma_region(mdev, cq->gdma_region);
+ ibdev_dbg(ibdev, "freeing gdma cq %p\n", gc->cq_table[cq->id]);
+ kfree(gc->cq_table[cq->id]);
+ gc->cq_table[cq->id] = NULL;
+ ib_umem_release(cq->umem);
+ }
return 0;
}
+
+void mana_ib_cq_handler(void *ctx, struct gdma_queue *gdma_cq)
+{
+ struct mana_ib_cq *cq = ctx;
+ struct ib_device *ibdev = cq->ibcq.device;
+
+ ibdev_dbg(ibdev, "Enter %s %d\n", __func__, __LINE__);This patch has two many debug prints, most if not all should go. Thanks