2023-07-21 03:50:26

by Junxian Huang

[permalink] [raw]
Subject: [PATCH v3 for-rc 0/2] RDMA/hns: Improvements for function resource configuration

Here are 3 patches involving function resource configuration.

1. #1: The first patch supports getting xrcd num from firmware.

2. #2: The second patch removes a redundant configuration in driver,
which is now handled by firmware.

V2 removes 'inline' before function names in the third patch.

V3 removes the third patch in V1 and V2.

*** BLURB HERE ***

Junxian Huang (1):
RDMA/hns: Remove VF extend configuration

Luoyouming (1):
RDMA/hns: support get xrcd num from firmware

drivers/infiniband/hw/hns/hns_roce_device.h | 1 -
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 89 +++------------------
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +--
3 files changed, 14 insertions(+), 89 deletions(-)

--
2.30.0



2023-07-21 03:50:26

by Junxian Huang

[permalink] [raw]
Subject: [PATCH v3 for-rc 1/2] RDMA/hns: support get xrcd num from firmware

From: Luoyouming <[email protected]>

Support driver get the num of xrcd from firmware

Signed-off-by: Luoyouming <[email protected]>
Signed-off-by: Junxian Huang <[email protected]>
---
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 5 ++---
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 3 ++-
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index d4c6b9bc0a4e..fb3ce4af22b5 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -2093,9 +2093,6 @@ static void apply_func_caps(struct hns_roce_dev *hr_dev)
caps->qpc_timer_hop_num = HNS_ROCE_HOP_NUM_0;
caps->cqc_timer_hop_num = HNS_ROCE_HOP_NUM_0;

- caps->num_xrcds = HNS_ROCE_V2_MAX_XRCD_NUM;
- caps->reserved_xrcds = HNS_ROCE_V2_RSV_XRCD_NUM;
-
caps->num_srqwqe_segs = HNS_ROCE_V2_MAX_SRQWQE_SEGS;
caps->num_idx_segs = HNS_ROCE_V2_MAX_IDX_SEGS;

@@ -2218,6 +2215,7 @@ static int hns_roce_query_caps(struct hns_roce_dev *hr_dev)
caps->num_cqs = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_CQS);
caps->gid_table_len[0] = hr_reg_read(resp_c, PF_CAPS_C_MAX_GID);
caps->max_cqes = 1 << hr_reg_read(resp_c, PF_CAPS_C_CQ_DEPTH);
+ caps->num_xrcds = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_XRCDS);
caps->num_mtpts = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_MRWS);
caps->num_qps = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_QPS);
caps->max_qp_init_rdma = hr_reg_read(resp_c, PF_CAPS_C_MAX_ORD);
@@ -2238,6 +2236,7 @@ static int hns_roce_query_caps(struct hns_roce_dev *hr_dev)
caps->reserved_mrws = hr_reg_read(resp_e, PF_CAPS_E_RSV_MRWS);
caps->chunk_sz = 1 << hr_reg_read(resp_e, PF_CAPS_E_CHUNK_SIZE_SHIFT);
caps->reserved_cqs = hr_reg_read(resp_e, PF_CAPS_E_RSV_CQS);
+ caps->reserved_xrcds = hr_reg_read(resp_e, PF_CAPS_E_RSV_XRCDS);
caps->reserved_srqs = hr_reg_read(resp_e, PF_CAPS_E_RSV_SRQS);
caps->reserved_lkey = hr_reg_read(resp_e, PF_CAPS_E_RSV_LKEYS);

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.h b/drivers/infiniband/hw/hns/hns_roce_hw_v2.h
index 7033eae2407c..2b87f0cf06ec 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.h
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.h
@@ -42,7 +42,6 @@
#define HNS_ROCE_V2_MAX_SRQWQE_SEGS 0x1000000
#define HNS_ROCE_V2_MAX_IDX_SEGS 0x1000000
#define HNS_ROCE_V2_MAX_XRCD_NUM 0x1000000
-#define HNS_ROCE_V2_RSV_XRCD_NUM 0

#define HNS_ROCE_V2_QP_ACK_TIMEOUT_OFS_HIP08 10

@@ -1202,6 +1201,7 @@ struct hns_roce_query_pf_caps_c {
#define PF_CAPS_C_NUM_CQS PF_CAPS_C_FIELD_LOC(51, 32)
#define PF_CAPS_C_MAX_GID PF_CAPS_C_FIELD_LOC(60, 52)
#define PF_CAPS_C_CQ_DEPTH PF_CAPS_C_FIELD_LOC(86, 64)
+#define PF_CAPS_C_NUM_XRCDS PF_CAPS_C_FIELD_LOC(91, 87)
#define PF_CAPS_C_NUM_MRWS PF_CAPS_C_FIELD_LOC(115, 96)
#define PF_CAPS_C_NUM_QPS PF_CAPS_C_FIELD_LOC(147, 128)
#define PF_CAPS_C_MAX_ORD PF_CAPS_C_FIELD_LOC(155, 148)
@@ -1260,6 +1260,7 @@ struct hns_roce_query_pf_caps_e {
#define PF_CAPS_E_RSV_MRWS PF_CAPS_E_FIELD_LOC(19, 0)
#define PF_CAPS_E_CHUNK_SIZE_SHIFT PF_CAPS_E_FIELD_LOC(31, 20)
#define PF_CAPS_E_RSV_CQS PF_CAPS_E_FIELD_LOC(51, 32)
+#define PF_CAPS_E_RSV_XRCDS PF_CAPS_E_FIELD_LOC(63, 52)
#define PF_CAPS_E_RSV_SRQS PF_CAPS_E_FIELD_LOC(83, 64)
#define PF_CAPS_E_RSV_LKEYS PF_CAPS_E_FIELD_LOC(115, 96)

--
2.30.0


2023-07-24 09:20:30

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH v3 for-rc 0/2] RDMA/hns: Improvements for function resource configuration


On Fri, 21 Jul 2023 10:51:44 +0800, Junxian Huang wrote:
> Here are 3 patches involving function resource configuration.
>
> 1. #1: The first patch supports getting xrcd num from firmware.
>
> 2. #2: The second patch removes a redundant configuration in driver,
> which is now handled by firmware.
>
> [...]

Applied, thanks!

[1/2] RDMA/hns: support get xrcd num from firmware
https://git.kernel.org/rdma/rdma/c/8b1a5fc24e74e8
[2/2] RDMA/hns: Remove VF extend configuration
https://git.kernel.org/rdma/rdma/c/d6cfa810d8a58c

Best regards,
--
Leon Romanovsky <[email protected]>

2023-07-24 09:48:26

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH v3 for-rc 0/2] RDMA/hns: Improvements for function resource configuration

On Fri, Jul 21, 2023 at 10:51:44AM +0800, Junxian Huang wrote:
> Here are 3 patches involving function resource configuration.
>
> 1. #1: The first patch supports getting xrcd num from firmware.
>
> 2. #2: The second patch removes a redundant configuration in driver,
> which is now handled by firmware.
>
> V2 removes 'inline' before function names in the third patch.
>
> V3 removes the third patch in V1 and V2.
>
> *** BLURB HERE ***
>
> Junxian Huang (1):
> RDMA/hns: Remove VF extend configuration
>
> Luoyouming (1):
> RDMA/hns: support get xrcd num from firmware
>
> drivers/infiniband/hw/hns/hns_roce_device.h | 1 -
> drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 89 +++------------------
> drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +--
> 3 files changed, 14 insertions(+), 89 deletions(-)

Applied to -next.

Thanks

>
> --
> 2.30.0
>