import rdma-core-26.0-8.el8
This commit is contained in:
parent
a6a1fe6c83
commit
6e3909bd72
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/rdma-core-22.3.tar.gz
|
||||
SOURCES/rdma-core-26.0.tar.gz
|
||||
|
@ -1 +1 @@
|
||||
94d0e32b8df096fb96f715439373abcadc4e5f4f SOURCES/rdma-core-22.3.tar.gz
|
||||
5842fbf5833d01a0c3cd0ee8eff7b78436d83024 SOURCES/rdma-core-26.0.tar.gz
|
||||
|
52531
SOURCES/0001-ABI-Files.patch
Normal file
52531
SOURCES/0001-ABI-Files.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,211 +0,0 @@
|
||||
From 27e4ca889803675fc73c5c8a72231bf21ec00f73 Mon Sep 17 00:00:00 2001
|
||||
From: Yishai Hadas <yishaih@mellanox.com>
|
||||
Date: Sun, 10 Feb 2019 10:43:12 +0200
|
||||
Subject: [PATCH rdma-core 1/3] Update kernel headers
|
||||
|
||||
To commit 2c1619edef61 ("IB/cma: Define option to set ack timeout and
|
||||
pack tos_set")
|
||||
|
||||
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
|
||||
---
|
||||
kernel-headers/rdma/bnxt_re-abi.h | 11 ++++++
|
||||
kernel-headers/rdma/ib_user_verbs.h | 2 ++
|
||||
kernel-headers/rdma/rdma_netlink.h | 54 +++++++++++++++++++++--------
|
||||
kernel-headers/rdma/rdma_user_cm.h | 4 +++
|
||||
kernel-headers/rdma/rdma_user_rxe.h | 3 +-
|
||||
5 files changed, 58 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/kernel-headers/rdma/bnxt_re-abi.h b/kernel-headers/rdma/bnxt_re-abi.h
|
||||
index a7a6111e..dc52e3cf 100644
|
||||
--- a/kernel-headers/rdma/bnxt_re-abi.h
|
||||
+++ b/kernel-headers/rdma/bnxt_re-abi.h
|
||||
@@ -44,6 +44,14 @@
|
||||
|
||||
#define BNXT_RE_ABI_VERSION 1
|
||||
|
||||
+#define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
|
||||
+#define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
|
||||
+#define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
|
||||
+
|
||||
+enum {
|
||||
+ BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
|
||||
+};
|
||||
+
|
||||
struct bnxt_re_uctx_resp {
|
||||
__u32 dev_id;
|
||||
__u32 max_qp;
|
||||
@@ -51,6 +59,9 @@ struct bnxt_re_uctx_resp {
|
||||
__u32 cqe_sz;
|
||||
__u32 max_cqd;
|
||||
__u32 rsvd;
|
||||
+ __aligned_u64 comp_mask;
|
||||
+ __u32 chip_id0;
|
||||
+ __u32 chip_id1;
|
||||
};
|
||||
|
||||
/*
|
||||
diff --git a/kernel-headers/rdma/ib_user_verbs.h b/kernel-headers/rdma/ib_user_verbs.h
|
||||
index 480d9a60..0474c740 100644
|
||||
--- a/kernel-headers/rdma/ib_user_verbs.h
|
||||
+++ b/kernel-headers/rdma/ib_user_verbs.h
|
||||
@@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp {
|
||||
struct ib_uverbs_tm_caps tm_caps;
|
||||
struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
|
||||
__aligned_u64 max_dm_size;
|
||||
+ __u32 xrc_odp_caps;
|
||||
+ __u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
diff --git a/kernel-headers/rdma/rdma_netlink.h b/kernel-headers/rdma/rdma_netlink.h
|
||||
index 2e18b77a..3a9e681e 100644
|
||||
--- a/kernel-headers/rdma/rdma_netlink.h
|
||||
+++ b/kernel-headers/rdma/rdma_netlink.h
|
||||
@@ -5,8 +5,7 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
- RDMA_NL_RDMA_CM = 1,
|
||||
- RDMA_NL_IWCM,
|
||||
+ RDMA_NL_IWCM = 2,
|
||||
RDMA_NL_RSVD,
|
||||
RDMA_NL_LS, /* RDMA Local Services */
|
||||
RDMA_NL_NLDEV, /* RDMA device interface */
|
||||
@@ -14,8 +13,7 @@ enum {
|
||||
};
|
||||
|
||||
enum {
|
||||
- RDMA_NL_GROUP_CM = 1,
|
||||
- RDMA_NL_GROUP_IWPM,
|
||||
+ RDMA_NL_GROUP_IWPM = 2,
|
||||
RDMA_NL_GROUP_LS,
|
||||
RDMA_NL_NUM_GROUPS
|
||||
};
|
||||
@@ -24,15 +22,17 @@ enum {
|
||||
#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
|
||||
#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
|
||||
|
||||
-enum {
|
||||
- RDMA_NL_RDMA_CM_ID_STATS = 0,
|
||||
- RDMA_NL_RDMA_CM_NUM_OPS
|
||||
-};
|
||||
+/* The minimum version that the iwpm kernel supports */
|
||||
+#define IWPM_UABI_VERSION_MIN 3
|
||||
|
||||
+/* The latest version that the iwpm kernel supports */
|
||||
+#define IWPM_UABI_VERSION 4
|
||||
+
|
||||
+/* iwarp port mapper message flags */
|
||||
enum {
|
||||
- RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
|
||||
- RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
|
||||
- RDMA_NL_RDMA_CM_NUM_ATTR,
|
||||
+
|
||||
+ /* Do not map the port for this IWPM request */
|
||||
+ IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
|
||||
};
|
||||
|
||||
/* iwarp port mapper op-codes */
|
||||
@@ -45,6 +45,7 @@ enum {
|
||||
RDMA_NL_IWPM_HANDLE_ERR,
|
||||
RDMA_NL_IWPM_MAPINFO,
|
||||
RDMA_NL_IWPM_MAPINFO_NUM,
|
||||
+ RDMA_NL_IWPM_HELLO,
|
||||
RDMA_NL_IWPM_NUM_OPS
|
||||
};
|
||||
|
||||
@@ -83,20 +84,38 @@ enum {
|
||||
IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_MANAGE_MAPPING_SEQ,
|
||||
IWPM_NLA_MANAGE_ADDR,
|
||||
- IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
|
||||
+ IWPM_NLA_MANAGE_FLAGS,
|
||||
+ IWPM_NLA_MANAGE_MAPPING_MAX
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ IWPM_NLA_RMANAGE_MAPPING_UNSPEC = 0,
|
||||
+ IWPM_NLA_RMANAGE_MAPPING_SEQ,
|
||||
+ IWPM_NLA_RMANAGE_ADDR,
|
||||
+ IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
|
||||
+ /* The following maintains bisectability of rdma-core */
|
||||
+ IWPM_NLA_MANAGE_MAPPED_LOC_ADDR = IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_ERR,
|
||||
IWPM_NLA_RMANAGE_MAPPING_MAX
|
||||
};
|
||||
|
||||
-#define IWPM_NLA_MANAGE_MAPPING_MAX 3
|
||||
-#define IWPM_NLA_QUERY_MAPPING_MAX 4
|
||||
#define IWPM_NLA_MAPINFO_SEND_MAX 3
|
||||
+#define IWPM_NLA_REMOVE_MAPPING_MAX 3
|
||||
|
||||
enum {
|
||||
IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
|
||||
IWPM_NLA_QUERY_MAPPING_SEQ,
|
||||
IWPM_NLA_QUERY_LOCAL_ADDR,
|
||||
IWPM_NLA_QUERY_REMOTE_ADDR,
|
||||
+ IWPM_NLA_QUERY_FLAGS,
|
||||
+ IWPM_NLA_QUERY_MAPPING_MAX,
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ IWPM_NLA_RQUERY_MAPPING_UNSPEC = 0,
|
||||
+ IWPM_NLA_RQUERY_MAPPING_SEQ,
|
||||
+ IWPM_NLA_RQUERY_LOCAL_ADDR,
|
||||
+ IWPM_NLA_RQUERY_REMOTE_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
|
||||
IWPM_NLA_RQUERY_MAPPING_ERR,
|
||||
@@ -114,6 +133,7 @@ enum {
|
||||
IWPM_NLA_MAPINFO_UNSPEC = 0,
|
||||
IWPM_NLA_MAPINFO_LOCAL_ADDR,
|
||||
IWPM_NLA_MAPINFO_MAPPED_ADDR,
|
||||
+ IWPM_NLA_MAPINFO_FLAGS,
|
||||
IWPM_NLA_MAPINFO_MAX
|
||||
};
|
||||
|
||||
@@ -132,6 +152,12 @@ enum {
|
||||
IWPM_NLA_ERR_MAX
|
||||
};
|
||||
|
||||
+enum {
|
||||
+ IWPM_NLA_HELLO_UNSPEC = 0,
|
||||
+ IWPM_NLA_HELLO_ABI_VERSION,
|
||||
+ IWPM_NLA_HELLO_MAX
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* Local service operations:
|
||||
* RESOLVE - The client requests the local service to resolve a path.
|
||||
diff --git a/kernel-headers/rdma/rdma_user_cm.h b/kernel-headers/rdma/rdma_user_cm.h
|
||||
index 0d1e78eb..e42940a2 100644
|
||||
--- a/kernel-headers/rdma/rdma_user_cm.h
|
||||
+++ b/kernel-headers/rdma/rdma_user_cm.h
|
||||
@@ -300,6 +300,10 @@ enum {
|
||||
RDMA_OPTION_ID_TOS = 0,
|
||||
RDMA_OPTION_ID_REUSEADDR = 1,
|
||||
RDMA_OPTION_ID_AFONLY = 2,
|
||||
+ RDMA_OPTION_ID_ACK_TIMEOUT = 3
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
RDMA_OPTION_IB_PATH = 1
|
||||
};
|
||||
|
||||
diff --git a/kernel-headers/rdma/rdma_user_rxe.h b/kernel-headers/rdma/rdma_user_rxe.h
|
||||
index 44ef6a3b..aae2e696 100644
|
||||
--- a/kernel-headers/rdma/rdma_user_rxe.h
|
||||
+++ b/kernel-headers/rdma/rdma_user_rxe.h
|
||||
@@ -58,8 +58,7 @@ struct rxe_global_route {
|
||||
struct rxe_av {
|
||||
__u8 port_num;
|
||||
__u8 network_type;
|
||||
- __u16 reserved1;
|
||||
- __u32 reserved2;
|
||||
+ __u8 dmac[6];
|
||||
struct rxe_global_route grh;
|
||||
union {
|
||||
struct sockaddr_in _sockaddr_in;
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,37 @@
|
||||
From bb3c76ae13473a3002d57bc29d154542ce172419 Mon Sep 17 00:00:00 2001
|
||||
From: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
|
||||
Date: Tue, 26 Nov 2019 04:05:21 -0500
|
||||
Subject: [PATCH 1/2] bnxt_re/lib: Add remaining pci ids for gen P5 devices
|
||||
|
||||
Making a change to add pci ids for VF and NPAR devices.
|
||||
|
||||
Signed-off-by: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
|
||||
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
|
||||
---
|
||||
providers/bnxt_re/main.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/providers/bnxt_re/main.c b/providers/bnxt_re/main.c
|
||||
index b1194db7..e290a07b 100644
|
||||
--- a/providers/bnxt_re/main.c
|
||||
+++ b/providers/bnxt_re/main.c
|
||||
@@ -76,9 +76,15 @@ static const struct verbs_match_ent cna_table[] = {
|
||||
CNA(BROADCOM, 0x16F0), /* BCM58730 */
|
||||
CNA(BROADCOM, 0x16F1), /* BCM57452 */
|
||||
CNA(BROADCOM, 0x1750), /* BCM57500 */
|
||||
+ CNA(BROADCOM, 0x1751), /* BCM57504 */
|
||||
+ CNA(BROADCOM, 0x1752), /* BCM57502 */
|
||||
+ CNA(BROADCOM, 0x1803), /* BCM57508 NPAR */
|
||||
+ CNA(BROADCOM, 0x1804), /* BCM57504 NPAR */
|
||||
+ CNA(BROADCOM, 0x1805), /* BCM57502 NPAR */
|
||||
+ CNA(BROADCOM, 0x1807), /* BCM5750x VF */
|
||||
CNA(BROADCOM, 0xD800), /* BCM880xx VF */
|
||||
CNA(BROADCOM, 0xD802), /* BCM58802 */
|
||||
- CNA(BROADCOM, 0xD804), /* BCM8804 SR */
|
||||
+ CNA(BROADCOM, 0xD804), /* BCM8804 SR */
|
||||
{}
|
||||
};
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
99
SOURCES/0001-ibacm-Do-not-open-non-InfiniBand-device.patch
Normal file
99
SOURCES/0001-ibacm-Do-not-open-non-InfiniBand-device.patch
Normal file
@ -0,0 +1,99 @@
|
||||
From 2f6e9cb2087508d29bf525f652136ea23a007bc6 Mon Sep 17 00:00:00 2001
|
||||
From: Honggang Li <honli@redhat.com>
|
||||
Date: Fri, 7 Feb 2020 10:25:31 +0800
|
||||
Subject: [PATCH] ibacm: Do not open non InfiniBand device
|
||||
|
||||
For dual port HCA, which has an InfiniBand port and an Ethernet port,
|
||||
only open InfiniBand port will introduce segment fault issues.
|
||||
|
||||
Because the Ethernet port did not open yet, segment fault when active
|
||||
the Ethernet port. The second segment fault issue happens when there
|
||||
is asyn event on the Ethernet port.
|
||||
|
||||
We should skip pure iWARP or RoCE devices, but not device which has at
|
||||
least one InfiniBand port.
|
||||
|
||||
Fixes: e9ffc0b3b940 ("ibacm: only open InfiniBand port")
|
||||
Signed-off-by: Honggang Li <honli@redhat.com>
|
||||
---
|
||||
ibacm/src/acm.c | 47 ++++++++++++++++++++++++++---------------------
|
||||
1 file changed, 26 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/ibacm/src/acm.c b/ibacm/src/acm.c
|
||||
index ad313075c7bb..283620338c9d 100644
|
||||
--- a/ibacm/src/acm.c
|
||||
+++ b/ibacm/src/acm.c
|
||||
@@ -2604,7 +2604,7 @@ static void acm_open_dev(struct ibv_device *ibdev)
|
||||
struct ibv_context *verbs;
|
||||
size_t size;
|
||||
int i, ret;
|
||||
- unsigned int opened_ib_port_cnt = 0;
|
||||
+ bool has_ib_port = false;
|
||||
|
||||
acm_log(1, "%s\n", ibdev->name);
|
||||
verbs = ibv_open_device(ibdev);
|
||||
@@ -2619,6 +2619,27 @@ static void acm_open_dev(struct ibv_device *ibdev)
|
||||
goto err1;
|
||||
}
|
||||
|
||||
+ for (i = 0; i < attr.phys_port_cnt; i++) {
|
||||
+ ret = ibv_query_port(verbs, i + 1, &port_attr);
|
||||
+ if (ret) {
|
||||
+ acm_log(0, "ERROR - ibv_query_port (%s, %d) return (%d)\n",
|
||||
+ ibdev->name, i + 1, ret);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (port_attr.link_layer == IBV_LINK_LAYER_INFINIBAND) {
|
||||
+ acm_log(1, "%s port %d is an InfiniBand port\n", ibdev->name, i + 1);
|
||||
+ has_ib_port = true;
|
||||
+ } else {
|
||||
+ acm_log(1, "%s port %d is not an InfiniBand port\n", ibdev->name, i + 1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!has_ib_port) {
|
||||
+ acm_log(1, "%s does not support InfiniBand.\n", ibdev->name);
|
||||
+ goto err1;
|
||||
+ }
|
||||
+
|
||||
size = sizeof(*dev) + sizeof(struct acmc_port) * attr.phys_port_cnt;
|
||||
dev = (struct acmc_device *) calloc(1, size);
|
||||
if (!dev)
|
||||
@@ -2630,29 +2651,13 @@ static void acm_open_dev(struct ibv_device *ibdev)
|
||||
list_head_init(&dev->prov_dev_context_list);
|
||||
|
||||
for (i = 0; i < dev->port_cnt; i++) {
|
||||
- acm_log(1, "%s port %d\n", ibdev->name, i + 1);
|
||||
- ret = ibv_query_port(dev->device.verbs, i + 1, &port_attr);
|
||||
- if (ret) {
|
||||
- acm_log(0, "ERROR - ibv_query_port (%d)\n", ret);
|
||||
- continue;
|
||||
- }
|
||||
- if (port_attr.link_layer != IBV_LINK_LAYER_INFINIBAND) {
|
||||
- acm_log(1, "not an InfiniBand port\n");
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
acm_open_port(&dev->port[i], dev, i + 1);
|
||||
- opened_ib_port_cnt++;
|
||||
}
|
||||
|
||||
- if (opened_ib_port_cnt) {
|
||||
- list_add(&dev_list, &dev->entry);
|
||||
- acm_log(1, "%d InfiniBand %s opened for %s\n",
|
||||
- opened_ib_port_cnt,
|
||||
- opened_ib_port_cnt == 1 ? "port" : "ports",
|
||||
- ibdev->name);
|
||||
- return;
|
||||
- }
|
||||
+ list_add(&dev_list, &dev->entry);
|
||||
+
|
||||
+ acm_log(1, "%s opened\n", ibdev->name);
|
||||
+ return;
|
||||
|
||||
err1:
|
||||
ibv_close_device(verbs);
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,287 +0,0 @@
|
||||
From 8e527a2d5eb6ef506a14f38095a576b8b470ce56 Mon Sep 17 00:00:00 2001
|
||||
From: Devesh Sharma <devesh.sharma@broadcom.com>
|
||||
Date: Sun, 13 Jan 2019 14:36:13 -0500
|
||||
Subject: [PATCH rdma-core 2/3] bnxt_re/lib: Enable Broadcom's 57500 RoCE
|
||||
adapter
|
||||
|
||||
This is to add Broadcom's 57500 series of adapters support
|
||||
to RoCE from libbnxt_re. Listing below the significant changes
|
||||
done as part of the patch.
|
||||
|
||||
- Added the pci-id of the basic gen-p5 chip.
|
||||
- Adjust psn search memory allocation to suite new search
|
||||
psn structure.
|
||||
- Added chip context structure to select the appropriate
|
||||
execution flow in data-path and control path.
|
||||
- Fill psn search area as per new or older chip execution
|
||||
flow.
|
||||
- removed duplicate declaration of BNXT_RE_ABI_VERSION macro
|
||||
|
||||
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
|
||||
---
|
||||
providers/bnxt_re/bnxt_re-abi.h | 10 +++++--
|
||||
providers/bnxt_re/main.c | 14 +++++++++
|
||||
providers/bnxt_re/main.h | 15 +++++++++-
|
||||
providers/bnxt_re/verbs.c | 50 +++++++++++++++++++++++----------
|
||||
4 files changed, 71 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/providers/bnxt_re/bnxt_re-abi.h b/providers/bnxt_re/bnxt_re-abi.h
|
||||
index 65d048d3..c6998e85 100644
|
||||
--- a/providers/bnxt_re/bnxt_re-abi.h
|
||||
+++ b/providers/bnxt_re/bnxt_re-abi.h
|
||||
@@ -43,8 +43,6 @@
|
||||
#include <rdma/bnxt_re-abi.h>
|
||||
#include <kernel-abi/bnxt_re-abi.h>
|
||||
|
||||
-#define BNXT_RE_ABI_VERSION 1
|
||||
-
|
||||
#define BNXT_RE_FULL_FLAG_DELTA 0x80
|
||||
|
||||
DECLARE_DRV_CMD(ubnxt_re_pd, IB_USER_VERBS_CMD_ALLOC_PD,
|
||||
@@ -246,6 +244,14 @@ struct bnxt_re_psns {
|
||||
__le32 flg_npsn;
|
||||
};
|
||||
|
||||
+struct bnxt_re_psns_ext {
|
||||
+ __u32 opc_spsn;
|
||||
+ __u32 flg_npsn;
|
||||
+ __u16 st_slot_idx;
|
||||
+ __u16 rsvd0;
|
||||
+ __u32 rsvd1;
|
||||
+};
|
||||
+
|
||||
struct bnxt_re_sge {
|
||||
__le64 pa;
|
||||
__le32 lkey;
|
||||
diff --git a/providers/bnxt_re/main.c b/providers/bnxt_re/main.c
|
||||
index 1cd4d880..d171748e 100644
|
||||
--- a/providers/bnxt_re/main.c
|
||||
+++ b/providers/bnxt_re/main.c
|
||||
@@ -74,6 +74,7 @@ static const struct verbs_match_ent cna_table[] = {
|
||||
CNA(BROADCOM, 0x16EF), /* BCM57416 NPAR */
|
||||
CNA(BROADCOM, 0x16F0), /* BCM58730 */
|
||||
CNA(BROADCOM, 0x16F1), /* BCM57452 */
|
||||
+ CNA(BROADCOM, 0x1750), /* BCM57500 */
|
||||
CNA(BROADCOM, 0xD800), /* BCM880xx VF */
|
||||
CNA(BROADCOM, 0xD802), /* BCM58802 */
|
||||
CNA(BROADCOM, 0xD804), /* BCM8804 SR */
|
||||
@@ -108,6 +109,11 @@ static const struct verbs_context_ops bnxt_re_cntx_ops = {
|
||||
.destroy_ah = bnxt_re_destroy_ah
|
||||
};
|
||||
|
||||
+bool bnxt_re_is_chip_gen_p5(struct bnxt_re_chip_ctx *cctx)
|
||||
+{
|
||||
+ return cctx->chip_num == CHIP_NUM_57500;
|
||||
+}
|
||||
+
|
||||
/* Context Init functions */
|
||||
static struct verbs_context *bnxt_re_alloc_context(struct ibv_device *vdev,
|
||||
int cmd_fd,
|
||||
@@ -133,6 +139,14 @@ static struct verbs_context *bnxt_re_alloc_context(struct ibv_device *vdev,
|
||||
dev->pg_size = resp.pg_size;
|
||||
dev->cqe_size = resp.cqe_sz;
|
||||
dev->max_cq_depth = resp.max_cqd;
|
||||
+ if (resp.comp_mask & BNXT_RE_UCNTX_CMASK_HAVE_CCTX) {
|
||||
+ cntx->cctx.chip_num = resp.chip_id0 & 0xFFFF;
|
||||
+ cntx->cctx.chip_rev = (resp.chip_id0 >>
|
||||
+ BNXT_RE_CHIP_ID0_CHIP_REV_SFT) & 0xFF;
|
||||
+ cntx->cctx.chip_metal = (resp.chip_id0 >>
|
||||
+ BNXT_RE_CHIP_ID0_CHIP_MET_SFT) &
|
||||
+ 0xFF;
|
||||
+ }
|
||||
pthread_spin_init(&cntx->fqlock, PTHREAD_PROCESS_PRIVATE);
|
||||
/* mmap shared page. */
|
||||
cntx->shpg = mmap(NULL, dev->pg_size, PROT_READ | PROT_WRITE,
|
||||
diff --git a/providers/bnxt_re/main.h b/providers/bnxt_re/main.h
|
||||
index 0b5c749f..be573496 100644
|
||||
--- a/providers/bnxt_re/main.h
|
||||
+++ b/providers/bnxt_re/main.h
|
||||
@@ -54,7 +54,14 @@
|
||||
|
||||
#define DEV "bnxt_re : "
|
||||
|
||||
-#define BNXT_RE_UD_QP_HW_STALL 0x400000
|
||||
+#define BNXT_RE_UD_QP_HW_STALL 0x400000
|
||||
+
|
||||
+#define CHIP_NUM_57500 0x1750
|
||||
+struct bnxt_re_chip_ctx {
|
||||
+ __u16 chip_num;
|
||||
+ __u8 chip_rev;
|
||||
+ __u8 chip_metal;
|
||||
+};
|
||||
|
||||
struct bnxt_re_dpi {
|
||||
__u32 dpindx;
|
||||
@@ -81,6 +88,7 @@ struct bnxt_re_cq {
|
||||
};
|
||||
|
||||
struct bnxt_re_wrid {
|
||||
+ struct bnxt_re_psns_ext *psns_ext;
|
||||
struct bnxt_re_psns *psns;
|
||||
uint64_t wrid;
|
||||
uint32_t bytes;
|
||||
@@ -111,6 +119,7 @@ struct bnxt_re_srq {
|
||||
|
||||
struct bnxt_re_qp {
|
||||
struct ibv_qp ibvqp;
|
||||
+ struct bnxt_re_chip_ctx *cctx;
|
||||
struct bnxt_re_queue *sqq;
|
||||
struct bnxt_re_wrid *swrid;
|
||||
struct bnxt_re_queue *rqq;
|
||||
@@ -155,6 +164,7 @@ struct bnxt_re_context {
|
||||
struct verbs_context ibvctx;
|
||||
uint32_t dev_id;
|
||||
uint32_t max_qp;
|
||||
+ struct bnxt_re_chip_ctx cctx;
|
||||
uint32_t max_srq;
|
||||
struct bnxt_re_dpi udpi;
|
||||
void *shpg;
|
||||
@@ -162,6 +172,9 @@ struct bnxt_re_context {
|
||||
pthread_spinlock_t fqlock;
|
||||
};
|
||||
|
||||
+/* Chip context related functions */
|
||||
+bool bnxt_re_is_chip_gen_p5(struct bnxt_re_chip_ctx *cctx);
|
||||
+
|
||||
/* DB ring functions used internally*/
|
||||
void bnxt_re_ring_rq_db(struct bnxt_re_qp *qp);
|
||||
void bnxt_re_ring_sq_db(struct bnxt_re_qp *qp);
|
||||
diff --git a/providers/bnxt_re/verbs.c b/providers/bnxt_re/verbs.c
|
||||
index 7786d247..bec382b3 100644
|
||||
--- a/providers/bnxt_re/verbs.c
|
||||
+++ b/providers/bnxt_re/verbs.c
|
||||
@@ -844,9 +844,11 @@ static void bnxt_re_free_queues(struct bnxt_re_qp *qp)
|
||||
static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp,
|
||||
struct ibv_qp_init_attr *attr,
|
||||
uint32_t pg_size) {
|
||||
+ struct bnxt_re_psns_ext *psns_ext;
|
||||
struct bnxt_re_queue *que;
|
||||
struct bnxt_re_psns *psns;
|
||||
uint32_t psn_depth;
|
||||
+ uint32_t psn_size;
|
||||
int ret, indx;
|
||||
|
||||
que = qp->sqq;
|
||||
@@ -857,11 +859,12 @@ static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp,
|
||||
que->diff = que->depth - attr->cap.max_send_wr;
|
||||
|
||||
/* psn_depth extra entries of size que->stride */
|
||||
- psn_depth = (que->depth * sizeof(struct bnxt_re_psns)) /
|
||||
- que->stride;
|
||||
- if ((que->depth * sizeof(struct bnxt_re_psns)) % que->stride)
|
||||
+ psn_size = bnxt_re_is_chip_gen_p5(qp->cctx) ?
|
||||
+ sizeof(struct bnxt_re_psns_ext) :
|
||||
+ sizeof(struct bnxt_re_psns);
|
||||
+ psn_depth = (que->depth * psn_size) / que->stride;
|
||||
+ if ((que->depth * psn_size) % que->stride)
|
||||
psn_depth++;
|
||||
-
|
||||
que->depth += psn_depth;
|
||||
/* PSN-search memory is allocated without checking for
|
||||
* QP-Type. Kenrel driver do not map this memory if it
|
||||
@@ -875,6 +878,7 @@ static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp,
|
||||
que->depth -= psn_depth;
|
||||
/* start of spsn space sizeof(struct bnxt_re_psns) each. */
|
||||
psns = (que->va + que->stride * que->depth);
|
||||
+ psns_ext = (struct bnxt_re_psns_ext *)psns;
|
||||
pthread_spin_init(&que->qlock, PTHREAD_PROCESS_PRIVATE);
|
||||
qp->swrid = calloc(que->depth, sizeof(struct bnxt_re_wrid));
|
||||
if (!qp->swrid) {
|
||||
@@ -884,6 +888,13 @@ static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp,
|
||||
|
||||
for (indx = 0 ; indx < que->depth; indx++, psns++)
|
||||
qp->swrid[indx].psns = psns;
|
||||
+ if (bnxt_re_is_chip_gen_p5(qp->cctx)) {
|
||||
+ for (indx = 0 ; indx < que->depth; indx++, psns_ext++) {
|
||||
+ qp->swrid[indx].psns_ext = psns_ext;
|
||||
+ qp->swrid[indx].psns = (struct bnxt_re_psns *)psns_ext;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
qp->cap.max_swr = que->depth;
|
||||
|
||||
if (qp->rqq) {
|
||||
@@ -931,6 +942,7 @@ struct ibv_qp *bnxt_re_create_qp(struct ibv_pd *ibvpd,
|
||||
if (bnxt_re_alloc_queue_ptr(qp, attr))
|
||||
goto fail;
|
||||
/* alloc queues */
|
||||
+ qp->cctx = &cntx->cctx;
|
||||
if (bnxt_re_alloc_queues(qp, attr, dev->pg_size))
|
||||
goto failq;
|
||||
/* Fill ibv_cmd */
|
||||
@@ -1094,26 +1106,36 @@ static int bnxt_re_build_sge(struct bnxt_re_sge *sge, struct ibv_sge *sg_list,
|
||||
return length;
|
||||
}
|
||||
|
||||
-static void bnxt_re_fill_psns(struct bnxt_re_qp *qp, struct bnxt_re_psns *psns,
|
||||
+static void bnxt_re_fill_psns(struct bnxt_re_qp *qp, struct bnxt_re_wrid *wrid,
|
||||
uint8_t opcode, uint32_t len)
|
||||
{
|
||||
- uint32_t pkt_cnt = 0, nxt_psn;
|
||||
+ uint32_t opc_spsn = 0, flg_npsn = 0;
|
||||
+ struct bnxt_re_psns_ext *psns_ext;
|
||||
+ uint32_t pkt_cnt = 0, nxt_psn = 0;
|
||||
+ struct bnxt_re_psns *psns;
|
||||
+
|
||||
+ psns = wrid->psns;
|
||||
+ psns_ext = wrid->psns_ext;
|
||||
|
||||
- memset(psns, 0, sizeof(*psns));
|
||||
if (qp->qptyp == IBV_QPT_RC) {
|
||||
- psns->opc_spsn = htole32(qp->sq_psn & BNXT_RE_PSNS_SPSN_MASK);
|
||||
+ opc_spsn = qp->sq_psn & BNXT_RE_PSNS_SPSN_MASK;
|
||||
pkt_cnt = (len / qp->mtu);
|
||||
if (len % qp->mtu)
|
||||
pkt_cnt++;
|
||||
if (len == 0)
|
||||
pkt_cnt = 1;
|
||||
nxt_psn = ((qp->sq_psn + pkt_cnt) & BNXT_RE_PSNS_NPSN_MASK);
|
||||
- psns->flg_npsn = htole32(nxt_psn);
|
||||
+ flg_npsn = nxt_psn;
|
||||
qp->sq_psn = nxt_psn;
|
||||
}
|
||||
opcode = bnxt_re_ibv_wr_to_wc_opcd(opcode);
|
||||
- psns->opc_spsn |= htole32(((opcode & BNXT_RE_PSNS_OPCD_MASK) <<
|
||||
- BNXT_RE_PSNS_OPCD_SHIFT));
|
||||
+ opc_spsn |= (((uint32_t)opcode & BNXT_RE_PSNS_OPCD_MASK) <<
|
||||
+ BNXT_RE_PSNS_OPCD_SHIFT);
|
||||
+ memset(psns, 0, sizeof(*psns));
|
||||
+ psns->opc_spsn = htole32(opc_spsn);
|
||||
+ psns->flg_npsn = htole32(flg_npsn);
|
||||
+ if (bnxt_re_is_chip_gen_p5(qp->cctx))
|
||||
+ psns_ext->st_slot_idx = 0;
|
||||
}
|
||||
|
||||
static void bnxt_re_fill_wrid(struct bnxt_re_wrid *wrid, struct ibv_send_wr *wr,
|
||||
@@ -1235,10 +1257,9 @@ int bnxt_re_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr,
|
||||
{
|
||||
struct bnxt_re_qp *qp = to_bnxt_re_qp(ibvqp);
|
||||
struct bnxt_re_queue *sq = qp->sqq;
|
||||
- struct bnxt_re_bsqe *hdr;
|
||||
struct bnxt_re_wrid *wrid;
|
||||
- struct bnxt_re_psns *psns;
|
||||
uint8_t is_inline = false;
|
||||
+ struct bnxt_re_bsqe *hdr;
|
||||
int ret = 0, bytes = 0;
|
||||
bool ring_db = false;
|
||||
void *sqe;
|
||||
@@ -1268,7 +1289,6 @@ int bnxt_re_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr,
|
||||
|
||||
sqe = (void *)(sq->va + (sq->tail * sq->stride));
|
||||
wrid = &qp->swrid[sq->tail];
|
||||
- psns = wrid->psns;
|
||||
|
||||
memset(sqe, 0, bnxt_re_get_sqe_sz());
|
||||
hdr = sqe;
|
||||
@@ -1318,7 +1338,7 @@ int bnxt_re_post_send(struct ibv_qp *ibvqp, struct ibv_send_wr *wr,
|
||||
}
|
||||
|
||||
bnxt_re_fill_wrid(wrid, wr, bytes, qp->cap.sqsig);
|
||||
- bnxt_re_fill_psns(qp, psns, wr->opcode, bytes);
|
||||
+ bnxt_re_fill_psns(qp, wrid, wr->opcode, bytes);
|
||||
bnxt_re_incr_tail(sq);
|
||||
qp->wqe_cnt++;
|
||||
wr = wr->next;
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,60 @@
|
||||
From 2d7c483d8a855e01e7bf2d945ab8720a10262bab Mon Sep 17 00:00:00 2001
|
||||
From: Luke Starrett <luke.starrett@broadcom.com>
|
||||
Date: Tue, 26 Nov 2019 04:11:28 -0500
|
||||
Subject: [PATCH 2/2] bnxt_re/lib: Recognize additional 5750x device ID's
|
||||
|
||||
BCM5750x family includes 57504 and 57502. Until recently the chip_num
|
||||
register always conveyed 0x1750 (57508). Recent devices properly
|
||||
reflect the SKU in the chip_num register. Update Phase5 checks to
|
||||
reflect this.
|
||||
|
||||
Signed-off-by: Luke Starrett <luke.starrett@broadcom.com>
|
||||
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
|
||||
---
|
||||
providers/bnxt_re/main.c | 6 ++++--
|
||||
providers/bnxt_re/main.h | 5 ++++-
|
||||
2 files changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/providers/bnxt_re/main.c b/providers/bnxt_re/main.c
|
||||
index e290a07b..803eff79 100644
|
||||
--- a/providers/bnxt_re/main.c
|
||||
+++ b/providers/bnxt_re/main.c
|
||||
@@ -75,7 +75,7 @@ static const struct verbs_match_ent cna_table[] = {
|
||||
CNA(BROADCOM, 0x16EF), /* BCM57416 NPAR */
|
||||
CNA(BROADCOM, 0x16F0), /* BCM58730 */
|
||||
CNA(BROADCOM, 0x16F1), /* BCM57452 */
|
||||
- CNA(BROADCOM, 0x1750), /* BCM57500 */
|
||||
+ CNA(BROADCOM, 0x1750), /* BCM57508 */
|
||||
CNA(BROADCOM, 0x1751), /* BCM57504 */
|
||||
CNA(BROADCOM, 0x1752), /* BCM57502 */
|
||||
CNA(BROADCOM, 0x1803), /* BCM57508 NPAR */
|
||||
@@ -118,7 +118,9 @@ static const struct verbs_context_ops bnxt_re_cntx_ops = {
|
||||
|
||||
bool bnxt_re_is_chip_gen_p5(struct bnxt_re_chip_ctx *cctx)
|
||||
{
|
||||
- return cctx->chip_num == CHIP_NUM_57500;
|
||||
+ return (cctx->chip_num == CHIP_NUM_57508 ||
|
||||
+ cctx->chip_num == CHIP_NUM_57504 ||
|
||||
+ cctx->chip_num == CHIP_NUM_57502);
|
||||
}
|
||||
|
||||
/* Context Init functions */
|
||||
diff --git a/providers/bnxt_re/main.h b/providers/bnxt_re/main.h
|
||||
index be573496..368297e6 100644
|
||||
--- a/providers/bnxt_re/main.h
|
||||
+++ b/providers/bnxt_re/main.h
|
||||
@@ -56,7 +56,10 @@
|
||||
|
||||
#define BNXT_RE_UD_QP_HW_STALL 0x400000
|
||||
|
||||
-#define CHIP_NUM_57500 0x1750
|
||||
+#define CHIP_NUM_57508 0x1750
|
||||
+#define CHIP_NUM_57504 0x1751
|
||||
+#define CHIP_NUM_57502 0x1752
|
||||
+
|
||||
struct bnxt_re_chip_ctx {
|
||||
__u16 chip_num;
|
||||
__u8 chip_rev;
|
||||
--
|
||||
2.21.0
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 2e12d7ebf4a578d4b21b4432debf532503907aa5 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Date: Tue, 22 Oct 2019 11:04:29 -0300
|
||||
Subject: [PATCH rdma-core 02/13] build: Do not enable -Wredundant-decls twice
|
||||
|
||||
[ Upstream commit 72918e16727c626717d327cc422654f2d211090d ]
|
||||
|
||||
It is already enabled later in cmake using a work around test for old
|
||||
distros. Enabling it here breaks the work around.
|
||||
|
||||
Fixes: 819be5fb5469 ("build: Enable more warnings")
|
||||
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
CMakeLists.txt | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fc17ef36..59ffdf83 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -216,7 +216,6 @@ RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WWRITE_STRINGS "-Wwrite-strings")
|
||||
RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WFORMAT_2 "-Wformat=2")
|
||||
RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WCAST_FUNCTION "-Wcast-function-type")
|
||||
RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WFORMAT_NONLITERAL "-Wformat-nonliteral")
|
||||
-RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WREDUNDANT_DECLS "-Wredundant-decls")
|
||||
RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WDATE_TIME "-Wdate-time")
|
||||
RDMA_AddOptCFlag(CMAKE_C_FLAGS HAVE_C_WNESTED_EXTERNS "-Wnested-externs")
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,34 @@
|
||||
From 382253d87dab98a7d082cd91e40eb59c8b70077b Mon Sep 17 00:00:00 2001
|
||||
From: Noa Osherovich <noaos@mellanox.com>
|
||||
Date: Mon, 28 Oct 2019 15:58:12 +0200
|
||||
Subject: [PATCH rdma-core 03/13] man: Fix wrong field in ibv_wr_post's man
|
||||
page
|
||||
|
||||
[ Upstream commit 5850789bb89df8f418d99b5dfb7f18bc3dd6cf58 ]
|
||||
|
||||
The example in the man page refers to a non-existing field.
|
||||
Update to the correct field name.
|
||||
|
||||
Fixes: 58ef962809865 ('verbs: Introduce a new post send API')
|
||||
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
libibverbs/man/ibv_wr_post.3.md | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libibverbs/man/ibv_wr_post.3.md b/libibverbs/man/ibv_wr_post.3.md
|
||||
index 4d5f80d6..ab7fc5f5 100644
|
||||
--- a/libibverbs/man/ibv_wr_post.3.md
|
||||
+++ b/libibverbs/man/ibv_wr_post.3.md
|
||||
@@ -315,7 +315,7 @@ ibv_wr_set_sge(qpx, lkey, local_addr_1, length_1);
|
||||
|
||||
/* create 2nd WRITE_WITH_IMM WR entry */
|
||||
qpx->wr_id = my_wr_id_2;
|
||||
-qpx->send_flags = IBV_SEND_SIGNALED;
|
||||
+qpx->wr_flags = IBV_SEND_SIGNALED;
|
||||
ibv_wr_rdma_write_imm(qpx, rkey, remote_addr_2, htonl(0x1234));
|
||||
ibv_set_wr_sge(qpx, lkey, local_addr_2, length_2);
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,31 +0,0 @@
|
||||
From cfae5eb767be97f62999a450ae602c7215614408 Mon Sep 17 00:00:00 2001
|
||||
From: Yishai Hadas <yishaih@mellanox.com>
|
||||
Date: Sun, 10 Mar 2019 12:03:58 +0200
|
||||
Subject: [PATCH rdma-core 3/3] mlx5: Add new device IDs
|
||||
|
||||
Add ConnectX-6 DX HCA ID.
|
||||
|
||||
In addition, add "ConnectX family mlx5Gen Virtual Function" device ID.
|
||||
Every new HCA VF will be identified with this device ID.
|
||||
|
||||
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
|
||||
---
|
||||
providers/mlx5/mlx5.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/providers/mlx5/mlx5.c b/providers/mlx5/mlx5.c
|
||||
index 08edfd85..1faae919 100644
|
||||
--- a/providers/mlx5/mlx5.c
|
||||
+++ b/providers/mlx5/mlx5.c
|
||||
@@ -74,6 +74,8 @@ static const struct verbs_match_ent hca_table[] = {
|
||||
HCA(MELLANOX, 0x101a), /* ConnectX-5 Ex VF */
|
||||
HCA(MELLANOX, 0x101b), /* ConnectX-6 */
|
||||
HCA(MELLANOX, 0x101c), /* ConnectX-6 VF */
|
||||
+ HCA(MELLANOX, 0x101d), /* ConnectX-6 DX */
|
||||
+ HCA(MELLANOX, 0x101e), /* ConnectX family mlx5Gen Virtual Function */
|
||||
HCA(MELLANOX, 0xa2d2), /* BlueField integrated ConnectX-5 network controller */
|
||||
HCA(MELLANOX, 0xa2d3), /* BlueField integrated ConnectX-5 network controller VF */
|
||||
{}
|
||||
--
|
||||
2.20.1
|
||||
|
85
SOURCES/0004-pyverbs-Fix-WC-creation-process.patch
Normal file
85
SOURCES/0004-pyverbs-Fix-WC-creation-process.patch
Normal file
@ -0,0 +1,85 @@
|
||||
From 252e5a0f63663da5128fe714a1e9ea8a35995696 Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Chicherin <maximc@mellanox.com>
|
||||
Date: Mon, 19 Aug 2019 11:11:12 +0300
|
||||
Subject: [PATCH rdma-core 04/13] pyverbs: Fix WC creation process
|
||||
|
||||
[ Upstream commit e83c7ff811544302ca3ecbcec23df0bb5b68d23f ]
|
||||
|
||||
In WC constructor, parameters assignment was incorrect and values
|
||||
were not stored properly.
|
||||
In addition, imm_data attribute was not initiated. imm_data represents
|
||||
immediate data in network byte order if wc_flags & IBV_WC_WITH_IMM or
|
||||
stores the invalidated rkey if wc_flags & IBV_WC_WITH_INV.
|
||||
|
||||
Fixes: 32165065ffbe ("pyverbs: Introducing completions related classes")
|
||||
Signed-off-by: Maxim Chicherin <maximc@mellanox.com>
|
||||
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
pyverbs/cq.pyx | 33 +++++++++++++++++++++------------
|
||||
1 file changed, 21 insertions(+), 12 deletions(-)
|
||||
mode change 100644 => 100755 pyverbs/cq.pyx
|
||||
|
||||
diff --git a/pyverbs/cq.pyx b/pyverbs/cq.pyx
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index dc09924e..3ac5f704
|
||||
--- a/pyverbs/cq.pyx
|
||||
+++ b/pyverbs/cq.pyx
|
||||
@@ -366,18 +366,19 @@ cdef class WC(PyverbsObject):
|
||||
def __cinit__(self, wr_id=0, status=0, opcode=0, vendor_err=0, byte_len=0,
|
||||
qp_num=0, src_qp=0, imm_data=0, wc_flags=0, pkey_index=0,
|
||||
slid=0, sl=0, dlid_path_bits=0):
|
||||
- self.wr_id = wr_id
|
||||
- self.status = status
|
||||
- self.opcode = opcode
|
||||
- self.vendor_err = vendor_err
|
||||
- self.byte_len = byte_len
|
||||
- self.qp_num = qp_num
|
||||
- self.src_qp = src_qp
|
||||
- self.wc_flags = wc_flags
|
||||
- self.pkey_index = pkey_index
|
||||
- self.slid = slid
|
||||
- self.sl = sl
|
||||
- self.dlid_path_bits = dlid_path_bits
|
||||
+ self.wc.wr_id = wr_id
|
||||
+ self.wc.status = status
|
||||
+ self.wc.opcode = opcode
|
||||
+ self.wc.vendor_err = vendor_err
|
||||
+ self.wc.byte_len = byte_len
|
||||
+ self.wc.qp_num = qp_num
|
||||
+ self.wc.src_qp = src_qp
|
||||
+ self.wc.wc_flags = wc_flags
|
||||
+ self.wc.pkey_index = pkey_index
|
||||
+ self.wc.slid = slid
|
||||
+ self.wc.imm_data = imm_data
|
||||
+ self.wc.sl = sl
|
||||
+ self.wc.dlid_path_bits = dlid_path_bits
|
||||
|
||||
@property
|
||||
def wr_id(self):
|
||||
@@ -456,6 +457,13 @@ cdef class WC(PyverbsObject):
|
||||
def sl(self, val):
|
||||
self.wc.sl = val
|
||||
|
||||
+ @property
|
||||
+ def imm_data(self):
|
||||
+ return self.wc.imm_data
|
||||
+ @imm_data.setter
|
||||
+ def imm_data(self, val):
|
||||
+ self.wc.imm_data = val
|
||||
+
|
||||
@property
|
||||
def dlid_path_bits(self):
|
||||
return self.wc.dlid_path_bits
|
||||
@@ -476,6 +484,7 @@ cdef class WC(PyverbsObject):
|
||||
print_format.format('pkey index', self.pkey_index) +\
|
||||
print_format.format('slid', self.slid) +\
|
||||
print_format.format('sl', self.sl) +\
|
||||
+ print_format.format('imm_data', self.imm_data) +\
|
||||
print_format.format('dlid path bits', self.dlid_path_bits)
|
||||
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,87 @@
|
||||
From 8720f4f288b12b8c89c6e237560986334c0949fa Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Chicherin <maximc@mellanox.com>
|
||||
Date: Mon, 19 Aug 2019 13:59:56 +0300
|
||||
Subject: [PATCH rdma-core 05/13] pyverbs: Fix CQ and PD assignment in QPAttr
|
||||
|
||||
[ Upstream commit d2c24c0d6514678cc8d56f8f2e28fcd6c2e68bbd ]
|
||||
|
||||
Fixed CQs assignment in QPInitAttr, QPInitAttrEx and QP objects:
|
||||
Receive cq parameter was assigned to send_cq attribute in InitAttr
|
||||
objects, and in QP rcq and scq attributes was not initialized properly.
|
||||
Fixed PD assignment in QPInitAttrEx object:
|
||||
In QPInitAttrEx pd pointer was not initialized with PD.pd pointer.
|
||||
|
||||
Fixes: 6d97a4af97b8 ("pyverbs: Avoid casting pointers to object type")
|
||||
Signed-off-by: Maxim Chicherin <maximc@mellanox.com>
|
||||
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
pyverbs/qp.pyx | 16 +++++++++-------
|
||||
1 file changed, 9 insertions(+), 7 deletions(-)
|
||||
mode change 100644 => 100755 pyverbs/qp.pyx
|
||||
|
||||
diff --git a/pyverbs/qp.pyx b/pyverbs/qp.pyx
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 576c0135..60973ca4
|
||||
--- a/pyverbs/qp.pyx
|
||||
+++ b/pyverbs/qp.pyx
|
||||
@@ -104,9 +104,9 @@ cdef class QPInitAttr(PyverbsObject):
|
||||
self.attr.qp_context = <void*>qp_context
|
||||
if scq is not None:
|
||||
if type(scq) is CQ:
|
||||
- self.attr.send_cq = (<CQ>rcq).cq
|
||||
+ self.attr.send_cq = (<CQ>scq).cq
|
||||
elif type(scq) is CQEX:
|
||||
- self.attr.send_cq = (<CQEX>rcq).ibv_cq
|
||||
+ self.attr.send_cq = (<CQEX>scq).ibv_cq
|
||||
else:
|
||||
raise PyverbsUserError('Expected CQ/CQEX, got {t}'.\
|
||||
format(t=type(scq)))
|
||||
@@ -221,9 +221,9 @@ cdef class QPInitAttrEx(PyverbsObject):
|
||||
_copy_caps(cap, self)
|
||||
if scq is not None:
|
||||
if type(scq) is CQ:
|
||||
- self.attr.send_cq = (<CQ>rcq).cq
|
||||
+ self.attr.send_cq = (<CQ>scq).cq
|
||||
elif type(scq) is CQEX:
|
||||
- self.attr.send_cq = (<CQEX>rcq).ibv_cq
|
||||
+ self.attr.send_cq = (<CQEX>scq).ibv_cq
|
||||
else:
|
||||
raise PyverbsUserError('Expected CQ/CQEX, got {t}'.\
|
||||
format(t=type(scq)))
|
||||
@@ -251,7 +251,7 @@ cdef class QPInitAttrEx(PyverbsObject):
|
||||
self.attr.comp_mask = comp_mask
|
||||
if pd is not None:
|
||||
self._pd = pd
|
||||
- self.attr.pd = <v.ibv_pd*>pd.pd
|
||||
+ self.attr.pd = pd.pd
|
||||
self.attr.create_flags = create_flags
|
||||
self.attr.max_tso_header = max_tso_header
|
||||
self.attr.source_qpn = source_qpn
|
||||
@@ -815,18 +815,20 @@ cdef class QP(PyverbsCM):
|
||||
if type(init_attr.send_cq) == CQ:
|
||||
cq = <CQ>init_attr.send_cq
|
||||
cq.add_ref(self)
|
||||
+ self.scq = cq
|
||||
else:
|
||||
cqex = <CQEX>init_attr.send_cq
|
||||
cqex.add_ref(self)
|
||||
- self.scq = cq
|
||||
+ self.scq = cqex
|
||||
if init_attr.send_cq != init_attr.recv_cq and init_attr.recv_cq is not None:
|
||||
if type(init_attr.recv_cq) == CQ:
|
||||
cq = <CQ>init_attr.recv_cq
|
||||
cq.add_ref(self)
|
||||
+ self.rcq = cq
|
||||
else:
|
||||
cqex = <CQEX>init_attr.recv_cq
|
||||
cqex.add_ref(self)
|
||||
- self.rcq = cq
|
||||
+ self.rcq = cqex
|
||||
|
||||
def _create_qp(self, PD pd, QPInitAttr attr):
|
||||
self.qp = v.ibv_create_qp(pd.pd, &attr.attr)
|
||||
--
|
||||
2.20.1
|
||||
|
37
SOURCES/0006-verbs-Set-missing-errno-in-ibv_cmd_reg_mr.patch
Normal file
37
SOURCES/0006-verbs-Set-missing-errno-in-ibv_cmd_reg_mr.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 5639fce1322dd8ae1398f8a7f530197484fc1f9e Mon Sep 17 00:00:00 2001
|
||||
From: Shay Drory <shayd@mellanox.com>
|
||||
Date: Mon, 7 Oct 2019 12:09:05 +0300
|
||||
Subject: [PATCH rdma-core 06/13] verbs: Set missing errno in ibv_cmd_reg_mr
|
||||
|
||||
[ Upstream commit f9e127a4bffa09ee72fc0ce92228296a4d1c1588 ]
|
||||
|
||||
Set missing errno in ibv_cmd_reg_mr() when implicit MR is used.
|
||||
|
||||
Fixes: d4021e743fda7 ("verbs: Fix implicit ODP MR support for 32 bit
|
||||
systems")
|
||||
Signed-off-by: Shay Drory <shayd@mellanox.com>
|
||||
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
libibverbs/cmd.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libibverbs/cmd.c b/libibverbs/cmd.c
|
||||
index 3936e69b..26eaa479 100644
|
||||
--- a/libibverbs/cmd.c
|
||||
+++ b/libibverbs/cmd.c
|
||||
@@ -340,8 +340,10 @@ int ibv_cmd_reg_mr(struct ibv_pd *pd, void *addr, size_t length,
|
||||
* In that case set the value in the command to what kernel expects.
|
||||
*/
|
||||
if (access & IBV_ACCESS_ON_DEMAND) {
|
||||
- if (length == SIZE_MAX && addr)
|
||||
+ if (length == SIZE_MAX && addr) {
|
||||
+ errno = EINVAL;
|
||||
return EINVAL;
|
||||
+ }
|
||||
if (length == SIZE_MAX)
|
||||
cmd->length = UINT64_MAX;
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,47 @@
|
||||
From 981c7553f55c8200e00e845224b283059dc07c92 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Vesker <valex@mellanox.com>
|
||||
Date: Sun, 6 Oct 2019 11:22:37 +0300
|
||||
Subject: [PATCH rdma-core 07/13] mlx5: Allow insertion of duplicate rules
|
||||
using DR API
|
||||
|
||||
[ Upstream commit b7c0d4d4611ac14f18024a6388d75f672aa7457a ]
|
||||
|
||||
Duplicate rules were not allowed to be configured with SW steering,
|
||||
unlike when working over root, fix to allow that.
|
||||
|
||||
This functionality is useful for replacing rules without dropping
|
||||
packets.
|
||||
|
||||
Fixes: a91e8c2bbedf ('mlx5: Expose steering rule functionality')
|
||||
Signed-off-by: Alex Vesker <valex@mellanox.com>
|
||||
Reviewed-by: Erez Shitrit <erezsh@mellanox.com>
|
||||
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
providers/mlx5/dr_rule.c | 10 ++++------
|
||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/providers/mlx5/dr_rule.c b/providers/mlx5/dr_rule.c
|
||||
index 1b873744..1e2d1813 100644
|
||||
--- a/providers/mlx5/dr_rule.c
|
||||
+++ b/providers/mlx5/dr_rule.c
|
||||
@@ -815,12 +815,10 @@ again:
|
||||
* it means that all the previous stes are the same,
|
||||
* if so, this rule is duplicated.
|
||||
*/
|
||||
- if (dr_ste_is_last_in_rule(nic_matcher, matched_ste->ste_chain_location)) {
|
||||
- dr_dbg(dmn, "Duplicate rule inserted, aborting\n");
|
||||
- errno = EINVAL;
|
||||
- return NULL;
|
||||
- }
|
||||
- return matched_ste;
|
||||
+ if (!dr_ste_is_last_in_rule(nic_matcher, ste_location))
|
||||
+ return matched_ste;
|
||||
+
|
||||
+ dr_dbg(dmn, "Duplicate rule inserted\n");
|
||||
}
|
||||
|
||||
if (!skip_rehash && dr_rule_need_enlarge_hash(cur_htbl, dmn, nic_dmn)) {
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,39 @@
|
||||
From 37079bbdb4c6b14f475a8910393e013e40247815 Mon Sep 17 00:00:00 2001
|
||||
From: Potnuri Bharat Teja <bharat@chelsio.com>
|
||||
Date: Thu, 31 Oct 2019 16:05:59 +0530
|
||||
Subject: [PATCH rdma-core 08/13] cxgb4: free appropriate pointer in error case
|
||||
|
||||
[ Upstream commit 151068ef86cc28d75b4cd73906b79c52fe55ee9c ]
|
||||
|
||||
error unmap case wrongly frees only the cqid2ptr for qp/mmid2ptr.
|
||||
This patch frees the appropriate pointer.
|
||||
|
||||
Fixes: 9b2d3af5735e ("Query device to get the max supported stags, qps, and cqs")
|
||||
Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
|
||||
---
|
||||
v0 -> v1:
|
||||
- add missing description
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
providers/cxgb4/dev.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/providers/cxgb4/dev.c b/providers/cxgb4/dev.c
|
||||
index 7f595544..4d02c7a9 100644
|
||||
--- a/providers/cxgb4/dev.c
|
||||
+++ b/providers/cxgb4/dev.c
|
||||
@@ -203,9 +203,9 @@ err_free:
|
||||
if (rhp->cqid2ptr)
|
||||
free(rhp->cqid2ptr);
|
||||
if (rhp->qpid2ptr)
|
||||
- free(rhp->cqid2ptr);
|
||||
+ free(rhp->qpid2ptr);
|
||||
if (rhp->mmid2ptr)
|
||||
- free(rhp->cqid2ptr);
|
||||
+ free(rhp->mmid2ptr);
|
||||
verbs_uninit_context(&context->ibv_ctx);
|
||||
free(context);
|
||||
return NULL;
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,45 @@
|
||||
From 3146dd6503fbb87b311caae47eeac739dc59bfd3 Mon Sep 17 00:00:00 2001
|
||||
From: Potnuri Bharat Teja <bharat@chelsio.com>
|
||||
Date: Mon, 4 Nov 2019 17:18:25 +0530
|
||||
Subject: [PATCH rdma-core 09/13] cxgb4: always query device before
|
||||
initializing chip version
|
||||
|
||||
[ Upstream commit df720f3658ca49aea89cb6e8f11980f30574d10a ]
|
||||
|
||||
chip_version may be initialized wrongly if alloc_context() is
|
||||
invoked multiple times. therefore always query device to derive the
|
||||
correct chip_version.
|
||||
|
||||
Fixes: c7e71b250268 ("cxgb4: fix chipversion initialization")
|
||||
Signed-off-by: Rahul Kundu <rahul.kundu@chelsio.com>
|
||||
Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
providers/cxgb4/dev.c | 9 +++------
|
||||
1 file changed, 3 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/providers/cxgb4/dev.c b/providers/cxgb4/dev.c
|
||||
index 4d02c7a9..ecd87e6c 100644
|
||||
--- a/providers/cxgb4/dev.c
|
||||
+++ b/providers/cxgb4/dev.c
|
||||
@@ -143,14 +143,11 @@ static struct verbs_context *c4iw_alloc_context(struct ibv_device *ibdev,
|
||||
}
|
||||
|
||||
verbs_set_ops(&context->ibv_ctx, &c4iw_ctx_common_ops);
|
||||
+ if (ibv_cmd_query_device(&context->ibv_ctx.context, &attr,
|
||||
+ &raw_fw_ver, &qcmd, sizeof(qcmd)))
|
||||
+ goto err_unmap;
|
||||
|
||||
if (!rhp->mmid2ptr) {
|
||||
- int ret;
|
||||
-
|
||||
- ret = ibv_cmd_query_device(&context->ibv_ctx.context, &attr,
|
||||
- &raw_fw_ver, &qcmd, sizeof(qcmd));
|
||||
- if (ret)
|
||||
- goto err_unmap;
|
||||
rhp->max_mr = attr.max_mr;
|
||||
rhp->mmid2ptr = calloc(attr.max_mr, sizeof(void *));
|
||||
if (!rhp->mmid2ptr) {
|
||||
--
|
||||
2.20.1
|
||||
|
469
SOURCES/0010-buildlib-Remove-travis-CI.patch
Normal file
469
SOURCES/0010-buildlib-Remove-travis-CI.patch
Normal file
@ -0,0 +1,469 @@
|
||||
From 6ce72aaa5963b28a2a01b47f332fa20c02eeb0db Mon Sep 17 00:00:00 2001
|
||||
From: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Date: Thu, 31 Oct 2019 13:17:11 -0300
|
||||
Subject: [PATCH rdma-core 10/13] buildlib: Remove travis CI
|
||||
|
||||
[ Upstream commit ae029ac74d62b12ea69127c91f83ad5944130764 ]
|
||||
|
||||
Azure Pipelines replaces it completely now, remove the word 'travis' from
|
||||
the source tree.
|
||||
|
||||
v26 was supposed to transition to azp for releases and it lacks the
|
||||
ability for travis to make the offical github tar.gz, so this needs to be
|
||||
back ported.
|
||||
|
||||
Cc: stable@linux-rdma.org #v26
|
||||
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
|
||||
---
|
||||
.travis.yml | 45 -----------
|
||||
CMakeLists.txt | 2 +-
|
||||
Documentation/stable.md | 8 +-
|
||||
README.md | 12 +--
|
||||
buildlib/cbuild | 173 ++--------------------------------------
|
||||
buildlib/check-build | 6 --
|
||||
buildlib/travis-build | 58 --------------
|
||||
7 files changed, 17 insertions(+), 287 deletions(-)
|
||||
delete mode 100644 .travis.yml
|
||||
delete mode 100755 buildlib/travis-build
|
||||
|
||||
diff --git a/.travis.yml b/.travis.yml
|
||||
deleted file mode 100644
|
||||
index e00b0165..00000000
|
||||
--- a/.travis.yml
|
||||
+++ /dev/null
|
||||
@@ -1,45 +0,0 @@
|
||||
-language: c
|
||||
-dist: xenial
|
||||
-addons:
|
||||
- # We run our builds sequentially in one VM rather than try and use the
|
||||
- # matrix feature. This is because Travis is unreasonably inefficient
|
||||
- # doing this APT setup pass.
|
||||
- apt:
|
||||
- sources:
|
||||
- - ubuntu-toolchain-r-test
|
||||
- packages:
|
||||
- - debhelper
|
||||
- - dh-systemd
|
||||
- - fakeroot
|
||||
- - gcc-8
|
||||
- - git-core
|
||||
- - libnl-3-dev
|
||||
- - libnl-route-3-dev
|
||||
- - libudev-dev
|
||||
- - make
|
||||
- - ninja-build
|
||||
- - pandoc
|
||||
- - python-docutils
|
||||
- - pkg-config
|
||||
- - python
|
||||
- - valgrind
|
||||
- - sparse
|
||||
- - wget
|
||||
- - abi-compliance-checker
|
||||
- - abi-dumper
|
||||
-
|
||||
- # 32 bit support packages
|
||||
- - gcc-multilib
|
||||
- # xenial craziness, need to give specific version of multilib,
|
||||
- # in addition to general multilib
|
||||
- - gcc-8-multilib
|
||||
- - lib32gcc-8-dev
|
||||
-
|
||||
- # pyverbs
|
||||
- - python3-dev
|
||||
- - python3-pip
|
||||
-
|
||||
-before_script:
|
||||
- - http_proxy= pip3 install cython
|
||||
-script:
|
||||
- - buildlib/travis-build
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 59ffdf83..b5da62b1 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -44,7 +44,7 @@
|
||||
# prefers python3 if available.
|
||||
# -DNO_PYVERBS=1 (default, build pyverbs)
|
||||
# Invoke cython to build pyverbs. Usually you will run with this option
|
||||
-# is set, but it will be disabled for travis runs.
|
||||
+# set
|
||||
# -DENABLE_IBDIAGS_COMPAT=True (default False)
|
||||
# Include obsolete scripts. These scripts are replaced by C programs with
|
||||
# a different interface now.
|
||||
diff --git a/Documentation/stable.md b/Documentation/stable.md
|
||||
index 76f5cf32..c12b2768 100644
|
||||
--- a/Documentation/stable.md
|
||||
+++ b/Documentation/stable.md
|
||||
@@ -10,7 +10,7 @@ Branched stable releases, off a mainline release, are on as-needed basis and lim
|
||||
|
||||
All bug fixes are to be backported from mainline and applied by stable branch maintainer.
|
||||
|
||||
-Branched stable releases will append an additional release number (e.g. 15.1) and will ensure that Travis CI reports a successful build.
|
||||
+Branched stable releases will append an additional release number (e.g. 15.1) and will ensure that Azure Pipelines CI reports a successful build.
|
||||
|
||||
Regular stable releases will be generated at the same time as mainline releases.
|
||||
Additional stable releases can be generated if the need arise (Needed by distributions or OFED).
|
||||
@@ -73,17 +73,17 @@ so that latters patches/fixes can be checked against this reference.
|
||||
|
||||
To do that, the creator of the branch should run
|
||||
```
|
||||
-./buildlib/cbuild build-images travis
|
||||
+./buildlib/cbuild build-images azp
|
||||
mkdir ABI
|
||||
touch ABI/.gitignore
|
||||
git add ABI/.gitignore
|
||||
git commit -m "ABI Files"
|
||||
-./buildlib/cbuild pkg travis
|
||||
+./buildlib/cbuild pkg azp
|
||||
git add ABI/*
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
-'cbuild pkg travis' will fail as the ABI verification step files, but it will
|
||||
+'cbuild pkg azp' will fail as the ABI verification step files, but it will
|
||||
produce the ABI reference files.
|
||||
|
||||
Note that the ABI directory must NOT be committed at any point in the master branch.
|
||||
diff --git a/README.md b/README.md
|
||||
index 451ff7fc..36273ad9 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -1,4 +1,4 @@
|
||||
-[![Build Status](https://travis-ci.org/linux-rdma/rdma-core.svg?branch=master)](https://travis-ci.org/linux-rdma/rdma-core)
|
||||
+[![Build Status](https://dev.azure.com/ucfconsort/rdma-core/_apis/build/status/linux-rdma.rdma-core?branchName=master)](https://dev.azure.com/ucfconsort/rdma-core/_build/latest?definitionId=2&branchName=master)
|
||||
|
||||
# RDMA Core Userspace Libraries and Daemons
|
||||
|
||||
@@ -137,13 +137,13 @@ Make sure that your contribution can be licensed under the same
|
||||
license as the original code you are patching, and that you have all
|
||||
necessary permissions to release your work.
|
||||
|
||||
-## TravisCI
|
||||
+## Azure Pipelines CI
|
||||
|
||||
-Submitted patches must pass the TravisCI automatic builds without warnings.
|
||||
-A build similar to TravisCI can be run locally using docker and the
|
||||
+Submitted patches must pass the Azure Pipelines CI automatic builds without
|
||||
+warnings. A build similar to AZP can be run locally using docker and the
|
||||
'buildlib/cbuild' script.
|
||||
|
||||
```sh
|
||||
-$ buildlib/cbuild build-images travis
|
||||
-$ buildlib/cbuild pkg travis
|
||||
+$ buildlib/cbuild build-images azp
|
||||
+$ buildlib/cbuild pkg azp
|
||||
```
|
||||
diff --git a/buildlib/cbuild b/buildlib/cbuild
|
||||
index 742a9e22..9825e099 100755
|
||||
--- a/buildlib/cbuild
|
||||
+++ b/buildlib/cbuild
|
||||
@@ -290,100 +290,6 @@ class debian_experimental(APTEnvironment):
|
||||
" ".join(sorted(self.pkgs))));
|
||||
return res;
|
||||
|
||||
-class travis(APTEnvironment):
|
||||
- """This parses the .travis.yml "apt" add on and converts it to a dockerfile,
|
||||
- basically creating a container that is similar to what travis would
|
||||
- use. Note this does not use the base travis image, nor does it install the
|
||||
- typical travis packages."""
|
||||
- docker_parent = "ubuntu:16.04";
|
||||
- name = "travis";
|
||||
- is_deb = True;
|
||||
- _yaml = None;
|
||||
-
|
||||
- def get_yaml(self):
|
||||
- if self._yaml:
|
||||
- return self._yaml;
|
||||
-
|
||||
- # Load the commands from the travis file
|
||||
- with open(".travis.yml") as F:
|
||||
- self._yaml = yaml.safe_load(F);
|
||||
- return self._yaml;
|
||||
- yaml = property(get_yaml);
|
||||
-
|
||||
- def get_repos(self):
|
||||
- """Return a list of things to add with apt-add-repository"""
|
||||
- Source = collections.namedtuple("Source",["sourceline","key_url"]);
|
||||
-
|
||||
- # See https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
||||
- pre_defined = {
|
||||
- "ubuntu-toolchain-r-test": Source("ppa:ubuntu-toolchain-r/test",None),
|
||||
- };
|
||||
-
|
||||
- # Unique the sources
|
||||
- res = set();
|
||||
- for src in self.yaml["addons"]["apt"]["sources"]:
|
||||
- if isinstance(src,dict):
|
||||
- res.add(Source(sourceline=src["sourceline"],
|
||||
- key_url=src.get("key_url",None)));
|
||||
- else:
|
||||
- res.add(pre_defined[src]);
|
||||
-
|
||||
- # Add the sources
|
||||
- scmds = [];
|
||||
- scmds.extend("apt-key add /etc/apt/trusted.gpg.d/%s"%(os.path.basename(I.key_url))
|
||||
- for I in res if I.key_url is not None);
|
||||
- scmds.extend("http_proxy= apt-add-repository -y %s"%(pipes.quote(I.sourceline))
|
||||
- for I in res);
|
||||
-
|
||||
- # Download the keys
|
||||
- cmds = ["ADD %s /etc/apt/trusted.gpg.d/"%(I.key_url)
|
||||
- for I in res if I.key_url is not None];
|
||||
-
|
||||
- cmds.append("RUN " + " && ".join(scmds));
|
||||
- return cmds;
|
||||
-
|
||||
- def get_before_script(self):
|
||||
- """Return a list of commands to run from before_script"""
|
||||
- cmds = ["RUN useradd -ms /bin/bash travis && \\"
|
||||
- "su -l -c %s"%(pipes.quote(" && ".join(self.yaml["before_script"]))) + " travis"];
|
||||
- return cmds
|
||||
-
|
||||
- def get_clang(self):
|
||||
- """We are using the clang that comes in travis, which is not part of our base
|
||||
- docker container, install something similar by hand."""
|
||||
- llvm_tar = "clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz"
|
||||
- cmds = [
|
||||
- """RUN wget -q http://releases.llvm.org/7.0.0/{0} -O /tmp/{0} && \\
|
||||
- tar xf /tmp/{0} -C /usr/local/ && \\
|
||||
- rm /tmp/{0} && \\
|
||||
- (cd /usr/local/bin/ && ln -sf ../clang*/bin/clang-7 .)""".format(llvm_tar)];
|
||||
- return cmds;
|
||||
-
|
||||
- def get_cython(self):
|
||||
- return ["""RUN pip3 install cython"""]
|
||||
-
|
||||
- def get_docker_file(self,tmpdir):
|
||||
- # First this to get apt-add-repository
|
||||
- self.pkgs = {"software-properties-common"}
|
||||
- res = APTEnvironment.get_docker_file(self,tmpdir);
|
||||
-
|
||||
- # Sources list from the travis.yml
|
||||
- res.lines.extend(self.get_repos());
|
||||
-
|
||||
- # Package list from the travis.yml
|
||||
- # Travis uses the new cmake built into the image, we need to get an
|
||||
- # older version from ubuntu.
|
||||
- res.lines.append("RUN apt-get update && apt-get install -y --no-install-recommends %s"%(
|
||||
- " ".join(sorted(["cmake"] + self.yaml["addons"]["apt"]["packages"]))));
|
||||
-
|
||||
- # Adding before_script commands
|
||||
- res.lines.extend(self.get_before_script())
|
||||
-
|
||||
- res.lines.extend(self.get_clang())
|
||||
- res.lines.extend(self.get_cython())
|
||||
-
|
||||
- return res;
|
||||
-
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
class ZypperEnvironment(Environment):
|
||||
@@ -521,7 +427,6 @@ deb [arch=arm64,ppc64el] http://ports.ubuntu.com/ bionic-updates main universe""
|
||||
environments = [centos6(),
|
||||
centos7(),
|
||||
centos7_epel(),
|
||||
- travis(),
|
||||
xenial(),
|
||||
bionic(),
|
||||
jessie(),
|
||||
@@ -572,7 +477,7 @@ def env_choices_pkg():
|
||||
"""All the names that can be used with ToEnvAction"""
|
||||
envs = set(("all",));
|
||||
for I in environments:
|
||||
- if I.name == "travis" or getattr(I,"is_deb",False) or getattr(I,"is_rpm",False):
|
||||
+ if getattr(I,"is_deb",False) or getattr(I,"is_rpm",False):
|
||||
envs.add(I.name);
|
||||
envs.update(I.aliases);
|
||||
return envs;
|
||||
@@ -660,12 +565,12 @@ def get_tar_file(args,tarfn,pandoc_prebuilt=False):
|
||||
return;
|
||||
|
||||
# When the OS does not support pandoc we got through the extra step to
|
||||
- # build pandoc output in the travis container and include it in the
|
||||
+ # build pandoc output in the azp container and include it in the
|
||||
# tar.
|
||||
if not args.use_prebuilt_pandoc:
|
||||
- subprocess.check_call(["buildlib/cbuild","make","travis","docs"]);
|
||||
+ subprocess.check_call(["buildlib/cbuild","make","azure_pipelines","docs"]);
|
||||
|
||||
- cmd_make_dist_tar(argparse.Namespace(BUILD="build-travis",tarfn=tarfn,
|
||||
+ cmd_make_dist_tar(argparse.Namespace(BUILD="build-azure_pipelines",tarfn=tarfn,
|
||||
script_pwd="",tag=None));
|
||||
|
||||
def run_rpm_build(args,spec_file,env):
|
||||
@@ -839,70 +744,6 @@ def copy_abi_files(src):
|
||||
print("Changed ABI File: ", ref_fn);
|
||||
shutil.copy(cur_fn, ref_fn);
|
||||
|
||||
-def run_travis_build(args,env):
|
||||
- with private_tmp(args) as tmpdir:
|
||||
- os.mkdir(os.path.join(tmpdir,"src"));
|
||||
- os.mkdir(os.path.join(tmpdir,"tmp"));
|
||||
-
|
||||
- opwd = os.getcwd();
|
||||
- with inDirectory(os.path.join(tmpdir,"src")):
|
||||
- subprocess.check_call(["git",
|
||||
- "--git-dir",os.path.join(opwd,".git"),
|
||||
- "reset","--hard","HEAD"]);
|
||||
- subprocess.check_call(["git",
|
||||
- "--git-dir",os.path.join(opwd,".git"),
|
||||
- "fetch",
|
||||
- "--no-tags",
|
||||
- "https://github.com/linux-rdma/rdma-core.git","HEAD",
|
||||
- "master"]);
|
||||
- base = subprocess.check_output(["git",
|
||||
- "--git-dir",os.path.join(opwd,".git"),
|
||||
- "merge-base",
|
||||
- "HEAD","FETCH_HEAD"]).decode().strip();
|
||||
-
|
||||
- home = os.path.join(os.path.sep,"home","travis");
|
||||
- home_build = os.path.join(os.path.sep,home,"build");
|
||||
-
|
||||
- opts = [
|
||||
- "run",
|
||||
- "--read-only",
|
||||
- "--rm=true",
|
||||
- "-v","%s:%s"%(tmpdir, home_build),
|
||||
- "-w",os.path.join(home_build,"src"),
|
||||
- "-u",str(os.getuid()),
|
||||
- "-e","TRAVIS_COMMIT_RANGE=%s..HEAD"%(base),
|
||||
- "-e","TRAVIS_BRANCH=%s"%(base),
|
||||
- "-e","TRAVIS_EVENT_TYPE=pull_request",
|
||||
- "-e","HOME=%s"%(home),
|
||||
- "-e","TMPDIR=%s"%(os.path.join(home_build,"tmp")),
|
||||
- ] + map_git_args(opwd,os.path.join(home_build,"src"));
|
||||
-
|
||||
- # Load the commands from the travis file
|
||||
- with open(os.path.join(opwd,".travis.yml")) as F:
|
||||
- cmds = yaml.safe_load(F)["script"];
|
||||
-
|
||||
- with open(os.path.join(tmpdir,"go.sh"),"w") as F:
|
||||
- print("#!/bin/bash", file=F);
|
||||
- print("set -e", file=F);
|
||||
- for I in cmds:
|
||||
- print(I, file=F);
|
||||
-
|
||||
- if args.run_shell:
|
||||
- opts.append("-ti");
|
||||
- opts.append(env.image_name());
|
||||
-
|
||||
- if args.run_shell:
|
||||
- opts.append("/bin/bash");
|
||||
- else:
|
||||
- opts.extend(["/bin/bash",os.path.join(home_build,"go.sh")]);
|
||||
-
|
||||
- try:
|
||||
- docker_cmd(args,*opts);
|
||||
- except subprocess.CalledProcessError as e:
|
||||
- copy_abi_files(os.path.join(tmpdir, "src/ABI"));
|
||||
- raise;
|
||||
- copy_abi_files(os.path.join(tmpdir, "src/ABI"));
|
||||
-
|
||||
def run_azp_build(args,env):
|
||||
# Load the commands from the pipelines file
|
||||
with open("buildlib/azure-pipelines.yml") as F:
|
||||
@@ -995,7 +836,7 @@ def args_pkg(parser):
|
||||
parser.add_argument("--run-shell",default=False,action="store_true",
|
||||
help="Instead of running the build, enter a shell");
|
||||
parser.add_argument("--use-prebuilt-pandoc",default=False,action="store_true",
|
||||
- help="Do not rebuild the pandoc cache in build-travis/pandoc-prebuilt/");
|
||||
+ help="Do not rebuild the pandoc cache in build-azure_pipelines/pandoc-prebuilt/");
|
||||
parser.add_argument("--with", default=[],action="append", dest="with_flags",
|
||||
help="Enable specified feature in RPM builds");
|
||||
parser.add_argument("--without", default=[],action="append", dest="without_flags",
|
||||
@@ -1003,9 +844,7 @@ def args_pkg(parser):
|
||||
def cmd_pkg(args):
|
||||
"""Build a package in the given environment."""
|
||||
for env in args.ENV:
|
||||
- if env.name == "travis":
|
||||
- run_travis_build(args,env);
|
||||
- elif env.name == "azure_pipelines":
|
||||
+ if env.name == "azure_pipelines":
|
||||
run_azp_build(args,env);
|
||||
elif getattr(env,"is_deb",False):
|
||||
run_deb_build(args,env);
|
||||
diff --git a/buildlib/check-build b/buildlib/check-build
|
||||
index 46053527..ab8524e5 100755
|
||||
--- a/buildlib/check-build
|
||||
+++ b/buildlib/check-build
|
||||
@@ -364,12 +364,6 @@ def get_cc_args_from_pkgconfig(args, name, static):
|
||||
if not static:
|
||||
return opts
|
||||
|
||||
- # The old pkg-config that travis uses incorrectly removes duplicated
|
||||
- # flags, which breaks linking.
|
||||
- if (name == "ibverbs" and
|
||||
- subprocess.check_output(["pkg-config", "--version"]).decode().strip() == "0.26"):
|
||||
- opts.insert(0, "-libverbs")
|
||||
-
|
||||
# Only static link the pkg-config stuff, otherwise we get warnings about
|
||||
# static linking portions of glibc that need NSS.
|
||||
opts.insert(0, "-Wl,-Bstatic")
|
||||
diff --git a/buildlib/travis-build b/buildlib/travis-build
|
||||
deleted file mode 100755
|
||||
index 48c1c8f6..00000000
|
||||
--- a/buildlib/travis-build
|
||||
+++ /dev/null
|
||||
@@ -1,58 +0,0 @@
|
||||
-#!/bin/bash
|
||||
-
|
||||
-PATH=/home/`whoami`/.local/bin:$PATH
|
||||
-
|
||||
-# Stop on error
|
||||
-set -e
|
||||
-# Echo all commands to Travis log
|
||||
-set -x
|
||||
-
|
||||
-mkdir build-travis build32 build-sparse
|
||||
-
|
||||
-# Build with latest clang first
|
||||
-cd build-travis
|
||||
-CC=clang-7 CFLAGS=-Werror cmake -GNinja .. -DIOCTL_MODE=both -DENABLE_STATIC=1
|
||||
-ninja
|
||||
-../buildlib/check-build --src .. --cc clang-7
|
||||
-
|
||||
-# 32 bit build to check format strings/etc
|
||||
-cd ../build32
|
||||
-# travis is not configured in a way that enables all 32 bit
|
||||
-# packages. We could fix this with some sudo stuff.. For now turn off libnl
|
||||
-CC=gcc-8 CFLAGS="-Werror -m32 -msse3" cmake -GNinja .. -DENABLE_RESOLVE_NEIGH=0 -DIOCTL_MODE=both -DNO_PYVERBS=1
|
||||
-ninja
|
||||
-
|
||||
-# Run sparse on the subdirectories which are sparse clean
|
||||
-cd ../build-sparse
|
||||
-mv ../CMakeLists.txt ../CMakeLists-orig.txt
|
||||
-grep -v "# NO SPARSE" ../CMakeLists-orig.txt > ../CMakeLists.txt
|
||||
-CC=cgcc CFLAGS="-Werror" cmake -GNinja .. -DIOCTL_MODE=both -DNO_PYVERBS=1
|
||||
-ninja | grep -v '^\[' | tee out
|
||||
-# sparse does not fail gcc on messages
|
||||
-if [ -s out ]; then
|
||||
- false
|
||||
-fi
|
||||
-mv ../CMakeLists-orig.txt ../CMakeLists.txt
|
||||
-
|
||||
-# Test with coherent DMA mode disabled (ie as would be on ARM32, etc)
|
||||
-cd ../build-travis
|
||||
-cp ../util/udma_barrier.h ../util/udma_barrier.h.old
|
||||
-echo "#error Fail" >> ../util/udma_barrier.h
|
||||
-rm CMakeCache.txt
|
||||
-CC=clang-7 CFLAGS=-Werror cmake -GNinja .. -DIOCTL_MODE=both
|
||||
-ninja
|
||||
-cp ../util/udma_barrier.h.old ../util/udma_barrier.h
|
||||
-
|
||||
-# Finally run through gcc-8 64 bit through the debian packaging This gives a
|
||||
-# good clue if patches are changing packaging related things, the RPM stuff
|
||||
-# will have to be audited by hand.
|
||||
-
|
||||
-# When running cmake through debian/rules it is hard to set -Werror,
|
||||
-# instead force it on by changing the CMakeLists.txt
|
||||
-cd ..
|
||||
-echo 'set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")' >> buildlib/RDMA_EnableCStd.cmake
|
||||
-sed -i -e 's/-DCMAKE_BUILD_TYPE=Release/-DCMAKE_BUILD_TYPE=Debug/g' debian/rules
|
||||
-sed -i -e 's/ninja \(.*\)-v/ninja \1/g' debian/rules
|
||||
-
|
||||
-CC=gcc-8 debian/rules build
|
||||
-fakeroot debian/rules binary
|
||||
--
|
||||
2.20.1
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 0f5201694034518656eb07f4ee2060c39c6255ce Mon Sep 17 00:00:00 2001
|
||||
From: Jason Gunthorpe <jgg@mellanox.com>
|
||||
Date: Thu, 7 Nov 2019 13:38:04 -0400
|
||||
Subject: [PATCH rdma-core 11/13] build: Run CI builds on the stable branches
|
||||
with azp support
|
||||
|
||||
[ Upstream commit 5770331de18e98449840238300a0bf4a436d2ee3 ]
|
||||
|
||||
v25 is the oldest stable branch that supports azp, before that travis is
|
||||
required.
|
||||
|
||||
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
|
||||
---
|
||||
buildlib/azure-pipelines.yml | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/buildlib/azure-pipelines.yml b/buildlib/azure-pipelines.yml
|
||||
index 4eef7408..031824b2 100644
|
||||
--- a/buildlib/azure-pipelines.yml
|
||||
+++ b/buildlib/azure-pipelines.yml
|
||||
@@ -2,6 +2,13 @@
|
||||
|
||||
trigger:
|
||||
- master
|
||||
+ - stable-v4*
|
||||
+ - stable-v3*
|
||||
+ - stable-v29
|
||||
+ - stable-v28
|
||||
+ - stable-v27
|
||||
+ - stable-v26
|
||||
+ - stable-v25
|
||||
pr:
|
||||
- master
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
82357
SOURCES/0012-build-Update-ABI-files.patch
Normal file
82357
SOURCES/0012-build-Update-ABI-files.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,24 @@
|
||||
From fd9b3596cb1a21e54ffb102392178b6bd5d14c78 Mon Sep 17 00:00:00 2001
|
||||
From: Jarod Wilson <jarod@redhat.com>
|
||||
Date: Wed, 21 Aug 2019 17:09:13 -0400
|
||||
Subject: [PATCH rdma-core] udev: keep NAME_KERNEL as default interface
|
||||
naming convention
|
||||
|
||||
Signed-off-by: Jarod Wilson <jarod@redhat.com>
|
||||
---
|
||||
kernel-boot/rdma-persistent-naming.rules | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel-boot/rdma-persistent-naming.rules b/kernel-boot/rdma-persistent-naming.rules
|
||||
index 9b61e163..a561746b 100644
|
||||
--- a/kernel-boot/rdma-persistent-naming.rules
|
||||
+++ b/kernel-boot/rdma-persistent-naming.rules
|
||||
@@ -25,4 +25,4 @@
|
||||
# Device type = RoCE
|
||||
# mlx5_0 -> rocex525400c0fe123455
|
||||
#
|
||||
-ACTION=="add", SUBSYSTEM=="infiniband", PROGRAM="rdma_rename %k NAME_FALLBACK"
|
||||
+ACTION=="add", SUBSYSTEM=="infiniband", PROGRAM="rdma_rename %k NAME_KERNEL"
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: rdma-core
|
||||
Version: 22.3
|
||||
Release: 1%{?dist}
|
||||
Version: 26.0
|
||||
Release: 8%{?dist}
|
||||
Summary: RDMA core userspace libraries and daemons
|
||||
|
||||
# Almost everything is licensed under the OFA dual GPLv2, 2 Clause BSD license
|
||||
@ -13,9 +13,25 @@ Source: https://github.com/linux-rdma/rdma-core/releases/download/v%{version}/%{
|
||||
Source1: ibdev2netdev
|
||||
Patch1: redhat-kernel-init-libi40iw-no-longer-tech-preview.patch
|
||||
Patch2: i40iw-autoload-breaks-suspend.patch
|
||||
Patch3: 0001-Update-kernel-headers.patch
|
||||
Patch4: 0002-bnxt_re-lib-Enable-Broadcom-s-57500-RoCE-adapter.patch
|
||||
Patch5: 0003-mlx5-Add-new-device-IDs.patch
|
||||
Patch3: udev-keep-NAME_KERNEL-as-default-interface-naming-co.patch
|
||||
# stable-vX patches
|
||||
Patch101: 0001-ABI-Files.patch
|
||||
Patch102: 0002-build-Do-not-enable-Wredundant-decls-twice.patch
|
||||
Patch103: 0003-man-Fix-wrong-field-in-ibv_wr_post-s-man-page.patch
|
||||
Patch104: 0004-pyverbs-Fix-WC-creation-process.patch
|
||||
Patch105: 0005-pyverbs-Fix-CQ-and-PD-assignment-in-QPAttr.patch
|
||||
Patch106: 0006-verbs-Set-missing-errno-in-ibv_cmd_reg_mr.patch
|
||||
Patch107: 0007-mlx5-Allow-insertion-of-duplicate-rules-using-DR-API.patch
|
||||
Patch108: 0008-cxgb4-free-appropriate-pointer-in-error-case.patch
|
||||
Patch109: 0009-cxgb4-always-query-device-before-initializing-chip-v.patch
|
||||
Patch110: 0010-buildlib-Remove-travis-CI.patch
|
||||
Patch111: 0011-build-Run-CI-builds-on-the-stable-branches-with-azp-.patch
|
||||
Patch112: 0012-build-Update-ABI-files.patch
|
||||
# libbnxt_re support for some new device ids and generation id
|
||||
Patch201: 0001-bnxt_re-lib-Add-remaining-pci-ids-for-gen-P5-devices.patch
|
||||
Patch202: 0002-bnxt_re-lib-Recognize-additional-5750x-device-ID-s.patch
|
||||
# Fix an ibacm segment fault issue
|
||||
Patch301: 0001-ibacm-Do-not-open-non-InfiniBand-device.patch
|
||||
# Do not build static libs by default.
|
||||
%define with_static %{?_with_static: 1} %{?!_with_static: 0}
|
||||
|
||||
@ -26,6 +42,7 @@ BuildRequires: libudev-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(libnl-3.0)
|
||||
BuildRequires: pkgconfig(libnl-route-3.0)
|
||||
BuildRequires: python3-docutils
|
||||
%ifarch %{valgrind_arches}
|
||||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
@ -51,7 +68,7 @@ ExcludeArch: %{arm}
|
||||
|
||||
# Since we recommend developers use Ninja, so should packagers, for consistency.
|
||||
%define CMAKE_FLAGS %{nil}
|
||||
%if 0%{?fedora} >= 23
|
||||
%if 0%{?fedora} >= 23 || 0%{?rhel} >= 8
|
||||
# Ninja was introduced in FC23
|
||||
BuildRequires: ninja-build
|
||||
%define CMAKE_FLAGS -GNinja
|
||||
@ -64,6 +81,8 @@ BuildRequires: make
|
||||
%define cmake_install DESTDIR=%{buildroot} make install
|
||||
%endif
|
||||
|
||||
BuildRequires: pandoc
|
||||
|
||||
%description
|
||||
RDMA core userspace infrastructure and documentation, including kernel
|
||||
driver-specific modprobe override configs, IPoIB network scripts,
|
||||
@ -90,6 +109,11 @@ Obsoletes: librdmacm-static < %{version}-%{release}
|
||||
Requires: ibacm = %{version}-%{release}
|
||||
Provides: ibacm-devel = %{version}-%{release}
|
||||
Obsoletes: ibacm-devel < %{version}-%{release}
|
||||
Requires: infiniband-diags = %{version}-%{release}
|
||||
Provides: infiniband-diags-devel = %{version}-%{release}
|
||||
Obsoletes: infiniband-diags-devel < %{version}-%{release}
|
||||
Provides: libibmad-devel = %{version}-%{release}
|
||||
Obsoletes: libibmad-devel < %{version}-%{release}
|
||||
Provides: libcxgb4-static = %{version}-%{release}
|
||||
Obsoletes: libcxgb4-static < %{version}-%{release}
|
||||
Provides: libhfi1-static = %{version}-%{release}
|
||||
@ -104,6 +128,20 @@ Obsoletes: libi40iw-devel-static < %{version}-%{release}
|
||||
%description devel
|
||||
RDMA core development libraries and headers.
|
||||
|
||||
%package -n infiniband-diags
|
||||
Summary: InfiniBand Diagnostic Tools
|
||||
Requires: libibumad = %{version}-%{release}
|
||||
Provides: perl(IBswcountlimits)
|
||||
Provides: libibmad = %{version}-%{release}
|
||||
Obsoletes: libibmad < %{version}-%{release}
|
||||
Obsoletes: openib-diags < 1.3
|
||||
|
||||
%description -n infiniband-diags
|
||||
This package provides IB diagnostic programs and scripts needed to diagnose an
|
||||
IB subnet. infiniband-diags now also provides libibmad. libibmad provides
|
||||
low layer IB functions for use by the IB diagnostic and management
|
||||
programs. These include MAD, SA, SMP, and other basic IB functions.
|
||||
|
||||
%package -n libibverbs
|
||||
Summary: A library and drivers for direct userspace use of RDMA (InfiniBand/iWARP/RoCE) hardware
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
@ -222,8 +260,21 @@ discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch107 -p1
|
||||
%patch108 -p1
|
||||
%patch109 -p1
|
||||
%patch110 -p1
|
||||
%patch111 -p1
|
||||
%patch112 -p1
|
||||
%patch201 -p1
|
||||
%patch202 -p1
|
||||
%patch301 -p1
|
||||
|
||||
%build
|
||||
|
||||
@ -253,6 +304,8 @@ discover and use SCSI devices via the SCSI RDMA Protocol over InfiniBand.
|
||||
-DCMAKE_INSTALL_RUNDIR:PATH=%{_rundir} \
|
||||
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{version} \
|
||||
-DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \
|
||||
-DCMAKE_INSTALL_PERLDIR:PATH=%{perl_vendorlib} \
|
||||
-DWITH_IBDIAGS_COMPAT:BOOL=False \
|
||||
%if %{with_static}
|
||||
-DENABLE_STATIC=1 \
|
||||
%endif
|
||||
@ -307,16 +360,29 @@ rm -f %{buildroot}/%{_libdir}/libibverbs/libmthca-rdmav*.so
|
||||
rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/mthca.driver
|
||||
rm -f %{buildroot}/%{_libdir}/libibverbs/libipathverbs-rdmav*.so
|
||||
rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
find %{buildroot} -name '*efa*' -exec rm -fv {} \;
|
||||
|
||||
# infiniband-diags
|
||||
%post -n infiniband-diags -p /sbin/ldconfig
|
||||
%postun -n infiniband-diags
|
||||
%ldconfig_postun
|
||||
|
||||
# libibverbs
|
||||
%post -n libibverbs -p /sbin/ldconfig
|
||||
%postun -n libibverbs -p /sbin/ldconfig
|
||||
%postun -n libibverbs
|
||||
%ldconfig_postun
|
||||
|
||||
# libibumad
|
||||
%post -n libibumad -p /sbin/ldconfig
|
||||
%postun -n libibumad -p /sbin/ldconfig
|
||||
%postun -n libibumad
|
||||
%ldconfig_postun
|
||||
|
||||
# librdmacm
|
||||
%post -n librdmacm -p /sbin/ldconfig
|
||||
%postun -n librdmacm -p /sbin/ldconfig
|
||||
%postun -n librdmacm
|
||||
%ldconfig_postun
|
||||
|
||||
# ibacm
|
||||
%post -n ibacm
|
||||
%systemd_post ibacm.service
|
||||
%preun -n ibacm
|
||||
@ -324,6 +390,7 @@ rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
%postun -n ibacm
|
||||
%systemd_postun_with_restart ibacm.service
|
||||
|
||||
# srp_daemon
|
||||
%post -n srp_daemon
|
||||
%systemd_post srp_daemon.service
|
||||
%preun -n srp_daemon
|
||||
@ -331,6 +398,7 @@ rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
%postun -n srp_daemon
|
||||
%systemd_postun_with_restart srp_daemon.service
|
||||
|
||||
# iwpmd
|
||||
%post -n iwpmd
|
||||
%systemd_post iwpmd.service
|
||||
%preun -n iwpmd
|
||||
@ -354,6 +422,7 @@ rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
%{_unitdir}/rdma.service
|
||||
%dir %{dracutlibdir}/modules.d/05rdma
|
||||
%{dracutlibdir}/modules.d/05rdma/module-setup.sh
|
||||
%{_udevrulesdir}/../rdma_rename
|
||||
%{_udevrulesdir}/*
|
||||
%{sysmodprobedir}/libmlx4.conf
|
||||
%{_libexecdir}/rdma-init-kernel
|
||||
@ -387,6 +456,53 @@ rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
%{_mandir}/man7/mlx5dv*
|
||||
%endif
|
||||
%{_mandir}/man7/rdma_cm.*
|
||||
%{_mandir}/man3/ibnd_*
|
||||
|
||||
%files -n infiniband-diags
|
||||
%{_sbindir}/ibaddr
|
||||
%{_sbindir}/ibnetdiscover
|
||||
%{_sbindir}/ibping
|
||||
%{_sbindir}/ibportstate
|
||||
%{_sbindir}/ibroute
|
||||
%{_sbindir}/ibstat
|
||||
%{_sbindir}/ibsysstat
|
||||
%{_sbindir}/ibtracert
|
||||
%{_sbindir}/perfquery
|
||||
%{_sbindir}/sminfo
|
||||
%{_sbindir}/smpdump
|
||||
%{_sbindir}/smpquery
|
||||
%{_sbindir}/saquery
|
||||
%{_sbindir}/vendstat
|
||||
%{_sbindir}/iblinkinfo
|
||||
%{_sbindir}/ibqueryerrors
|
||||
%{_sbindir}/ibcacheedit
|
||||
%{_sbindir}/ibccquery
|
||||
%{_sbindir}/ibccconfig
|
||||
%{_sbindir}/dump_fts
|
||||
%{_sbindir}/ibhosts
|
||||
%{_sbindir}/ibswitches
|
||||
%{_sbindir}/ibnodes
|
||||
%{_sbindir}/ibrouters
|
||||
%{_sbindir}/ibfindnodesusing.pl
|
||||
%{_sbindir}/ibidsverify.pl
|
||||
%{_sbindir}/check_lft_balance.pl
|
||||
%{_sbindir}/dump_lfts.sh
|
||||
%{_sbindir}/dump_mfts.sh
|
||||
%{_sbindir}/ibstatus
|
||||
%{_libdir}/libibmad*.so.*
|
||||
%{_libdir}/libibnetdisc*.so.*
|
||||
%{_mandir}/man8/infiniband-diags*
|
||||
%{_mandir}/man8/check_lft_balance*
|
||||
%{_mandir}/man8/dump*
|
||||
%{_mandir}/man8/ib*
|
||||
%{_mandir}/man8/perfquery*
|
||||
%{_mandir}/man8/saquery*
|
||||
%{_mandir}/man8/sminfo*
|
||||
%{_mandir}/man8/smp*
|
||||
%{_mandir}/man8/vendstat*
|
||||
%{perl_vendorlib}/IBswcountlimits.pm
|
||||
%config(noreplace) %{_sysconfdir}/infiniband-diags/error_thresholds
|
||||
%config(noreplace) %{_sysconfdir}/infiniband-diags/ibdiag.conf
|
||||
|
||||
%files -n libibverbs
|
||||
%dir %{_sysconfdir}/libibverbs.d
|
||||
@ -488,6 +604,45 @@ rm -f %{buildroot}/%{_sysconfdir}/libibverbs.d/ipathverbs.driver
|
||||
%doc %{_docdir}/%{name}-%{version}/ibsrpdm.md
|
||||
|
||||
%changelog
|
||||
* Fri Feb 07 2020 Honggang Li <honli@redhat.com> - 26.0-8
|
||||
- Fix an ibacm segfault issue for dual port HCA support IB and Ethernet
|
||||
- Resolves: bz1793736
|
||||
|
||||
* Tue Dec 17 2019 Honggang Li <honli@redhat.com> - 26.0-7
|
||||
- Build with Ninja.
|
||||
- Resolves: bz1783254
|
||||
|
||||
* Fri Dec 13 2019 Honggang Li <honli@redhat.com> - 26.0-6
|
||||
- Remove dangling symlink
|
||||
- Resolves: bz1782828
|
||||
|
||||
* Wed Dec 11 2019 Honggang Li <honli@redhat.com> - 26.0-5
|
||||
- Remove EFA driver
|
||||
- Fix rpm dependency issue
|
||||
- Resolves: bz1781454, bz1781457
|
||||
|
||||
* Mon Dec 09 2019 Honggang Li <honli@redhat.com> - 26.0-4
|
||||
- libbnxt_re support for some new device ids and generation id
|
||||
- Resolves: bz1779948
|
||||
|
||||
* Tue Nov 19 2019 Jarod Wilson <jarod@redhat.com> - 26.0-3
|
||||
- Make rdma-core-devel Obsoletes infiniband-diags due to man3/ibnd_*
|
||||
- Related: rhbz#1722257
|
||||
|
||||
* Thu Nov 14 2019 Jarod Wilson <jarod@redhat.com> - 26.0-2
|
||||
- Add Obsoletes/Provides pair for infiniband-diags-devel
|
||||
- Pull in upstream stable-v26 branch patches
|
||||
- Fix %%postun scriptlet failures by removing superfluous -p options
|
||||
- Add new BuildRequires: on pandoc
|
||||
- Related: rhbz#1722257
|
||||
|
||||
* Thu Nov 14 2019 Jarod Wilson <jarod@redhat.com> - 26.0-1
|
||||
- Update to upstream v26 release for features and fixes
|
||||
- Resolves: rhbz#1722257
|
||||
|
||||
* Tue Jul 23 2019 Jarod Wilson <jarod@redhat.com> - 24.0-1
|
||||
- Update to upstream v24 release for features and fixes
|
||||
|
||||
* Mon Jun 24 2019 Jarod Wilson <jarod@redhat.com> - 22.3-1
|
||||
- Update to upstream v22.3 stable release for fixes
|
||||
- Enable support for Broadcom 57500 hardware
|
||||
|
Loading…
Reference in New Issue
Block a user