!46 解决hns roce DSCP合入时未刷新spec patch list的问题
From: @hellotcc Reviewed-by: @li-yangyang20 Signed-off-by: @li-yangyang20
This commit is contained in:
commit
bdba7c90b6
@ -1,4 +1,4 @@
|
|||||||
From 288a89df406d8c77b3e3d6a8ca375ef18b676769 Mon Sep 17 00:00:00 2001
|
From b88e6ae3e144651092bce923123ca20361cdacab Mon Sep 17 00:00:00 2001
|
||||||
From: Yixing Liu <liuyixing1@huawei.com>
|
From: Yixing Liu <liuyixing1@huawei.com>
|
||||||
Date: Tue, 27 Sep 2022 19:06:00 +0800
|
Date: Tue, 27 Sep 2022 19:06:00 +0800
|
||||||
Subject: [PATCH 12/12] libhns: Support DSCP
|
Subject: [PATCH 12/12] libhns: Support DSCP
|
||||||
@ -9,9 +9,10 @@ the mapping of dscp-tc configured in kernel mode.
|
|||||||
Signed-off-by: Yixing Liu <liuyixing1@huawei.com>
|
Signed-off-by: Yixing Liu <liuyixing1@huawei.com>
|
||||||
---
|
---
|
||||||
providers/hns/hns_roce_u.h | 7 +++++++
|
providers/hns/hns_roce_u.h | 7 +++++++
|
||||||
providers/hns/hns_roce_u_hw_v2.c | 11 ++++++++++-
|
providers/hns/hns_roce_u_abi.h | 6 ++++++
|
||||||
providers/hns/hns_roce_u_verbs.c | 3 +++
|
providers/hns/hns_roce_u_hw_v2.c | 19 +++++++++++++++----
|
||||||
3 files changed, 20 insertions(+), 1 deletion(-)
|
providers/hns/hns_roce_u_verbs.c | 7 +++++--
|
||||||
|
4 files changed, 33 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h
|
diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h
|
||||||
index 6b64cd0..8c1cb1e 100644
|
index 6b64cd0..8c1cb1e 100644
|
||||||
@ -38,19 +39,58 @@ index 6b64cd0..8c1cb1e 100644
|
|||||||
unsigned int qkey;
|
unsigned int qkey;
|
||||||
enum ibv_mtu path_mtu;
|
enum ibv_mtu path_mtu;
|
||||||
|
|
||||||
|
diff --git a/providers/hns/hns_roce_u_abi.h b/providers/hns/hns_roce_u_abi.h
|
||||||
|
index 2753d30..0519ac7 100644
|
||||||
|
--- a/providers/hns/hns_roce_u_abi.h
|
||||||
|
+++ b/providers/hns/hns_roce_u_abi.h
|
||||||
|
@@ -49,6 +49,9 @@ DECLARE_DRV_CMD(hns_roce_create_cq_ex, IB_USER_VERBS_EX_CMD_CREATE_CQ,
|
||||||
|
DECLARE_DRV_CMD(hns_roce_alloc_ucontext, IB_USER_VERBS_CMD_GET_CONTEXT,
|
||||||
|
hns_roce_ib_alloc_ucontext, hns_roce_ib_alloc_ucontext_resp);
|
||||||
|
|
||||||
|
+DECLARE_DRV_CMD(hns_roce_create_ah, IB_USER_VERBS_CMD_CREATE_AH, empty,
|
||||||
|
+ hns_roce_ib_create_ah_resp);
|
||||||
|
+
|
||||||
|
DECLARE_DRV_CMD(hns_roce_create_qp, IB_USER_VERBS_CMD_CREATE_QP,
|
||||||
|
hns_roce_ib_create_qp, hns_roce_ib_create_qp_resp);
|
||||||
|
|
||||||
|
@@ -61,4 +64,7 @@ DECLARE_DRV_CMD(hns_roce_create_srq, IB_USER_VERBS_CMD_CREATE_SRQ,
|
||||||
|
DECLARE_DRV_CMD(hns_roce_create_srq_ex, IB_USER_VERBS_CMD_CREATE_XSRQ,
|
||||||
|
hns_roce_ib_create_srq, hns_roce_ib_create_srq_resp);
|
||||||
|
|
||||||
|
+DECLARE_DRV_CMD(hns_roce_modify_qp_ex, IB_USER_VERBS_EX_CMD_MODIFY_QP,
|
||||||
|
+ empty, hns_roce_ib_modify_qp_resp);
|
||||||
|
+
|
||||||
|
#endif /* _HNS_ROCE_U_ABI_H */
|
||||||
diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c
|
diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c
|
||||||
index a30d461..c90a312 100644
|
index a30d461..c652eea 100644
|
||||||
--- a/providers/hns/hns_roce_u_hw_v2.c
|
--- a/providers/hns/hns_roce_u_hw_v2.c
|
||||||
+++ b/providers/hns/hns_roce_u_hw_v2.c
|
+++ b/providers/hns/hns_roce_u_hw_v2.c
|
||||||
@@ -1545,6 +1545,7 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
@@ -1543,10 +1543,11 @@ static void record_qp_attr(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
||||||
|
static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
||||||
|
int attr_mask)
|
||||||
{
|
{
|
||||||
int ret;
|
- int ret;
|
||||||
struct ibv_modify_qp cmd;
|
- struct ibv_modify_qp cmd;
|
||||||
+ struct hns_roce_modify_qp_ex_resp resp_ex = {};
|
+ struct hns_roce_modify_qp_ex_resp resp_ex = {};
|
||||||
|
+ struct hns_roce_modify_qp_ex cmd_ex = {};
|
||||||
struct hns_roce_qp *hr_qp = to_hr_qp(qp);
|
struct hns_roce_qp *hr_qp = to_hr_qp(qp);
|
||||||
bool flag = false; /* modify qp to error */
|
bool flag = false; /* modify qp to error */
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
@@ -1564,8 +1565,13 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
if ((attr_mask & IBV_QP_STATE) && (attr->qp_state == IBV_QPS_ERR)) {
|
||||||
|
pthread_spin_lock(&hr_qp->sq.lock);
|
||||||
|
@@ -1554,7 +1555,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = ibv_cmd_modify_qp(qp, attr, attr_mask, &cmd, sizeof(cmd));
|
||||||
|
+ ret = ibv_cmd_modify_qp_ex(qp, attr, attr_mask, &cmd_ex.ibv_cmd,
|
||||||
|
+ sizeof(cmd_ex), &resp_ex.ibv_resp,
|
||||||
|
+ sizeof(resp_ex));
|
||||||
|
|
||||||
|
if (flag) {
|
||||||
|
pthread_spin_unlock(&hr_qp->rq.lock);
|
||||||
|
@@ -1564,8 +1567,13 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -65,7 +105,7 @@ index a30d461..c90a312 100644
|
|||||||
|
|
||||||
if ((attr_mask & IBV_QP_STATE) && attr->qp_state == IBV_QPS_RESET) {
|
if ((attr_mask & IBV_QP_STATE) && attr->qp_state == IBV_QPS_RESET) {
|
||||||
if (qp->recv_cq)
|
if (qp->recv_cq)
|
||||||
@@ -1579,6 +1585,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
@@ -1579,6 +1587,9 @@ static int hns_roce_u_v2_modify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr,
|
||||||
hns_roce_init_qp_indices(to_hr_qp(qp));
|
hns_roce_init_qp_indices(to_hr_qp(qp));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,10 +116,26 @@ index a30d461..c90a312 100644
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c
|
diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c
|
||||||
index cff9d1d..a21c837 100644
|
index cff9d1d..3b7a67d 100644
|
||||||
--- a/providers/hns/hns_roce_u_verbs.c
|
--- a/providers/hns/hns_roce_u_verbs.c
|
||||||
+++ b/providers/hns/hns_roce_u_verbs.c
|
+++ b/providers/hns/hns_roce_u_verbs.c
|
||||||
@@ -1483,6 +1483,9 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr)
|
@@ -1449,7 +1449,7 @@ static int get_tclass(struct ibv_context *context, struct ibv_ah_attr *attr,
|
||||||
|
struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr)
|
||||||
|
{
|
||||||
|
struct hns_roce_device *hr_dev = to_hr_dev(pd->context->device);
|
||||||
|
- struct ib_uverbs_create_ah_resp resp = {};
|
||||||
|
+ struct hns_roce_create_ah_resp resp = {};
|
||||||
|
struct hns_roce_ah *ah;
|
||||||
|
|
||||||
|
/* HIP08 don't support create ah */
|
||||||
|
@@ -1477,12 +1477,15 @@ struct ibv_ah *hns_roce_u_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr)
|
||||||
|
memcpy(ah->av.dgid, attr->grh.dgid.raw, ARRAY_SIZE(ah->av.dgid));
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp, sizeof(resp)))
|
||||||
|
+ if (ibv_cmd_create_ah(pd, &ah->ibv_ah, attr, &resp.ibv_resp, sizeof(resp)))
|
||||||
|
goto err;
|
||||||
|
|
||||||
if (ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL))
|
if (ibv_resolve_eth_l2_from_gid(pd->context, attr, ah->av.mac, NULL))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,8 @@ Patch6: 0007-libhns-Refactor-rq-inline.patch
|
|||||||
Patch7: 0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch
|
Patch7: 0008-libhns-RQ-inline-support-wc_x_poll_cq-interface.patch
|
||||||
Patch8: 0009-Update-kernel-headers.patch
|
Patch8: 0009-Update-kernel-headers.patch
|
||||||
Patch9: 0010-libhns-Support-cqe-inline.patch
|
Patch9: 0010-libhns-Support-cqe-inline.patch
|
||||||
|
Patch10: 0011-Update-kernel-headers.patch
|
||||||
|
Patch11: 0012-libhns-Support-DSCP.patch
|
||||||
|
|
||||||
BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0)
|
BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0)
|
||||||
BuildRequires: pkgconfig(libnl-route-3.0) valgrind-devel systemd systemd-devel
|
BuildRequires: pkgconfig(libnl-route-3.0) valgrind-devel systemd systemd-devel
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user