* [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes
@ 2024-01-23 4:54 Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters Selvin Xavier
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg; +Cc: linux-rdma, andrew.gospodarek, Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 652 bytes --]
Includes some of the minor bug fixes in bnxt_re. Please
review and apply.
Thanks,
Selvin Xavier
Kalesh AP (5):
RDMA/bnxt_re: Avoid creating fence MR for newer adapters
RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config
RDMA/bnxt_re: Fix unconditional fence for newer adapters
RDMA/bnxt_re: Return error for SRQ resize
RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 43 +++++++++++++++++++++-----------
drivers/infiniband/hw/bnxt_re/main.c | 3 ---
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 ++-
3 files changed, 30 insertions(+), 19 deletions(-)
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH for-rc 1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
@ 2024-01-23 4:54 ` Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 2/5] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config Selvin Xavier
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg
Cc: linux-rdma, andrew.gospodarek, Kalesh AP, Kashyap Desai,
Bhargava Chenna Marreddy, Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 1794 bytes --]
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Limit the usage of fence MR to adapters older than Gen P5 products.
Fixes: 1801d87b3598 ("RDMA/bnxt_re: Support new 5760X P7 devices")
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Bhargava Chenna Marreddy <bhargava.marreddy@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
index 8243496..e1ea492 100644
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -401,6 +401,10 @@ static void bnxt_re_create_fence_wqe(struct bnxt_re_pd *pd)
struct bnxt_re_fence_data *fence = &pd->fence;
struct ib_mr *ib_mr = &fence->mr->ib_mr;
struct bnxt_qplib_swqe *wqe = &fence->bind_wqe;
+ struct bnxt_re_dev *rdev = pd->rdev;
+
+ if (bnxt_qplib_is_chip_gen_p5_p7(rdev->chip_ctx))
+ return;
memset(wqe, 0, sizeof(*wqe));
wqe->type = BNXT_QPLIB_SWQE_TYPE_BIND_MW;
@@ -455,6 +459,9 @@ static void bnxt_re_destroy_fence_mr(struct bnxt_re_pd *pd)
struct device *dev = &rdev->en_dev->pdev->dev;
struct bnxt_re_mr *mr = fence->mr;
+ if (bnxt_qplib_is_chip_gen_p5_p7(rdev->chip_ctx))
+ return;
+
if (fence->mw) {
bnxt_re_dealloc_mw(fence->mw);
fence->mw = NULL;
@@ -486,6 +493,9 @@ static int bnxt_re_create_fence_mr(struct bnxt_re_pd *pd)
struct ib_mw *mw;
int rc;
+ if (bnxt_qplib_is_chip_gen_p5_p7(rdev->chip_ctx))
+ return 0;
+
dma_addr = dma_map_single(dev, fence->va, BNXT_RE_FENCE_BYTES,
DMA_BIDIRECTIONAL);
rc = dma_mapping_error(dev, dma_addr);
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH for-rc 2/5] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters Selvin Xavier
@ 2024-01-23 4:54 ` Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 3/5] RDMA/bnxt_re: Fix unconditional fence for newer adapters Selvin Xavier
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg; +Cc: linux-rdma, andrew.gospodarek, Kalesh AP, Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
After the cited commit, there is no possibility that this check
can return true. Remove it.
Fixes: a43c26fa2e6c ("RDMA/bnxt_re: Remove the sriov config callback")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
drivers/infiniband/hw/bnxt_re/main.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c
index f022c922..54b4d2f 100644
--- a/drivers/infiniband/hw/bnxt_re/main.c
+++ b/drivers/infiniband/hw/bnxt_re/main.c
@@ -280,9 +280,6 @@ static void bnxt_re_set_resource_limits(struct bnxt_re_dev *rdev)
static void bnxt_re_vf_res_config(struct bnxt_re_dev *rdev)
{
-
- if (test_bit(BNXT_RE_FLAG_ERR_DEVICE_DETACHED, &rdev->flags))
- return;
rdev->num_vfs = pci_sriov_get_totalvfs(rdev->en_dev->pdev);
if (!bnxt_qplib_is_chip_gen_p5_p7(rdev->chip_ctx)) {
bnxt_re_set_resource_limits(rdev);
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH for-rc 3/5] RDMA/bnxt_re: Fix unconditional fence for newer adapters
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 2/5] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config Selvin Xavier
@ 2024-01-23 4:54 ` Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 4/5] RDMA/bnxt_re: Return error for SRQ resize Selvin Xavier
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg
Cc: linux-rdma, andrew.gospodarek, Kalesh AP, Kashyap Desai,
Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 2712 bytes --]
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Older adapters required an unconditional fence for
non-wire memory operations. Newer adapters doesn't require
this and therefore, disabling the unconditional fence.
Fixes: 1801d87b3598 ("RDMA/bnxt_re: Support new 5760X P7 devices")
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
index e1ea492..fdb4fde 100644
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -2566,11 +2566,6 @@ static int bnxt_re_build_inv_wqe(const struct ib_send_wr *wr,
wqe->type = BNXT_QPLIB_SWQE_TYPE_LOCAL_INV;
wqe->local_inv.inv_l_key = wr->ex.invalidate_rkey;
- /* Need unconditional fence for local invalidate
- * opcode to work as expected.
- */
- wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
-
if (wr->send_flags & IB_SEND_SIGNALED)
wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP;
if (wr->send_flags & IB_SEND_SOLICITED)
@@ -2593,12 +2588,6 @@ static int bnxt_re_build_reg_wqe(const struct ib_reg_wr *wr,
wqe->frmr.levels = qplib_frpl->hwq.level;
wqe->type = BNXT_QPLIB_SWQE_TYPE_REG_MR;
- /* Need unconditional fence for reg_mr
- * opcode to function as expected.
- */
-
- wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
-
if (wr->wr.send_flags & IB_SEND_SIGNALED)
wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP;
@@ -2729,6 +2718,18 @@ static int bnxt_re_post_send_shadow_qp(struct bnxt_re_dev *rdev,
return rc;
}
+static void bnxt_re_legacy_set_uc_fence(struct bnxt_qplib_swqe *wqe)
+{
+ /* Need unconditional fence for non-wire memory opcode
+ * to work as expected.
+ */
+ if (wqe->type == BNXT_QPLIB_SWQE_TYPE_LOCAL_INV ||
+ wqe->type == BNXT_QPLIB_SWQE_TYPE_FAST_REG_MR ||
+ wqe->type == BNXT_QPLIB_SWQE_TYPE_REG_MR ||
+ wqe->type == BNXT_QPLIB_SWQE_TYPE_BIND_MW)
+ wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE;
+}
+
int bnxt_re_post_send(struct ib_qp *ib_qp, const struct ib_send_wr *wr,
const struct ib_send_wr **bad_wr)
{
@@ -2808,8 +2809,11 @@ int bnxt_re_post_send(struct ib_qp *ib_qp, const struct ib_send_wr *wr,
rc = -EINVAL;
goto bad;
}
- if (!rc)
+ if (!rc) {
+ if (!bnxt_qplib_is_chip_gen_p5_p7(qp->rdev->chip_ctx))
+ bnxt_re_legacy_set_uc_fence(&wqe);
rc = bnxt_qplib_post_send(&qp->qplib_qp, &wqe);
+ }
bad:
if (rc) {
ibdev_err(&qp->rdev->ibdev,
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH for-rc 4/5] RDMA/bnxt_re: Return error for SRQ resize
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
` (2 preceding siblings ...)
2024-01-23 4:54 ` [PATCH for-rc 3/5] RDMA/bnxt_re: Fix unconditional fence for newer adapters Selvin Xavier
@ 2024-01-23 4:54 ` Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 5/5] RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq Selvin Xavier
2024-01-25 10:04 ` [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Leon Romanovsky
5 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg; +Cc: linux-rdma, andrew.gospodarek, Kalesh AP, Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 1502 bytes --]
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
SRQ resize is not supported in the driver. But driver is not
returning error from bnxt_re_modify_srq() for SRQ resize.
Fixes: 37cb11acf1f7 ("RDMA/bnxt_re: Add SRQ support for Broadcom adapters")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
index fdb4fde..ce9c5ba 100644
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -1827,7 +1827,7 @@ int bnxt_re_modify_srq(struct ib_srq *ib_srq, struct ib_srq_attr *srq_attr,
switch (srq_attr_mask) {
case IB_SRQ_MAX_WR:
/* SRQ resize is not supported */
- break;
+ return -EINVAL;
case IB_SRQ_LIMIT:
/* Change the SRQ threshold */
if (srq_attr->srq_limit > srq->qplib_srq.max_wqe)
@@ -1842,13 +1842,12 @@ int bnxt_re_modify_srq(struct ib_srq *ib_srq, struct ib_srq_attr *srq_attr,
/* On success, update the shadow */
srq->srq_limit = srq_attr->srq_limit;
/* No need to Build and send response back to udata */
- break;
+ return 0;
default:
ibdev_err(&rdev->ibdev,
"Unsupported srq_attr_mask 0x%x", srq_attr_mask);
return -EINVAL;
}
- return 0;
}
int bnxt_re_query_srq(struct ib_srq *ib_srq, struct ib_srq_attr *srq_attr)
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH for-rc 5/5] RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
` (3 preceding siblings ...)
2024-01-23 4:54 ` [PATCH for-rc 4/5] RDMA/bnxt_re: Return error for SRQ resize Selvin Xavier
@ 2024-01-23 4:54 ` Selvin Xavier
2024-01-25 10:04 ` [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Leon Romanovsky
5 siblings, 0 replies; 7+ messages in thread
From: Selvin Xavier @ 2024-01-23 4:54 UTC (permalink / raw)
To: leon, jgg; +Cc: linux-rdma, andrew.gospodarek, Kalesh AP, Selvin Xavier
[-- Attachment #1: Type: text/plain, Size: 1066 bytes --]
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Before populating the response, driver has to check the status
of HWRM command.
Fixes: 37cb11acf1f7 ("RDMA/bnxt_re: Add SRQ support for Broadcom adapters")
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
index c98e04f..439d0c7 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -744,7 +744,8 @@ int bnxt_qplib_query_srq(struct bnxt_qplib_res *res,
bnxt_qplib_fill_cmdqmsg(&msg, &req, &resp, &sbuf, sizeof(req),
sizeof(resp), 0);
rc = bnxt_qplib_rcfw_send_message(rcfw, &msg);
- srq->threshold = le16_to_cpu(sb->srq_limit);
+ if (!rc)
+ srq->threshold = le16_to_cpu(sb->srq_limit);
dma_free_coherent(&rcfw->pdev->dev, sbuf.size,
sbuf.sb, sbuf.dma_addr);
--
2.5.5
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
` (4 preceding siblings ...)
2024-01-23 4:54 ` [PATCH for-rc 5/5] RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq Selvin Xavier
@ 2024-01-25 10:04 ` Leon Romanovsky
5 siblings, 0 replies; 7+ messages in thread
From: Leon Romanovsky @ 2024-01-25 10:04 UTC (permalink / raw)
To: jgg, Selvin Xavier; +Cc: linux-rdma, andrew.gospodarek
On Mon, 22 Jan 2024 20:54:32 -0800, Selvin Xavier wrote:
> Includes some of the minor bug fixes in bnxt_re. Please
> review and apply.
>
> Thanks,
> Selvin Xavier
>
> Kalesh AP (5):
> RDMA/bnxt_re: Avoid creating fence MR for newer adapters
> RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config
> RDMA/bnxt_re: Fix unconditional fence for newer adapters
> RDMA/bnxt_re: Return error for SRQ resize
> RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq
>
> [...]
Applied, thanks!
[1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters
https://git.kernel.org/rdma/rdma/c/282fd66e2ef6e5
[2/5] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config
https://git.kernel.org/rdma/rdma/c/8fcbf0a55f71be
[3/5] RDMA/bnxt_re: Fix unconditional fence for newer adapters
https://git.kernel.org/rdma/rdma/c/8eaca6b5997bd8
[4/5] RDMA/bnxt_re: Return error for SRQ resize
https://git.kernel.org/rdma/rdma/c/3687b450c5f32e
[5/5] RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq
https://git.kernel.org/rdma/rdma/c/80dde187f734cf
Best regards,
--
Leon Romanovsky <leon@kernel.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-01-25 10:05 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-23 4:54 [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 1/5] RDMA/bnxt_re: Avoid creating fence MR for newer adapters Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 2/5] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_vf_res_config Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 3/5] RDMA/bnxt_re: Fix unconditional fence for newer adapters Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 4/5] RDMA/bnxt_re: Return error for SRQ resize Selvin Xavier
2024-01-23 4:54 ` [PATCH for-rc 5/5] RDMA/bnxt_re: Add a missing check in bnxt_qplib_query_srq Selvin Xavier
2024-01-25 10:04 ` [PATCH for-rc 0/5] RDMA/bnxt_re: Bug fixes Leon Romanovsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox