From 015f57df9854a6ce27db1a34b84d5195149d83e3 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 10 May 2022 03:19:50 -0400 Subject: [PATCH] import rdma-core-37.2-1.el8 --- .gitignore | 2 +- .rdma-core.metadata | 2 +- ...for-i40e-device-with-specific-PCI-ID.patch | 71 ------------------- ...mparing-qp_state-for-iWARP-providers.patch | 63 ++++++++++++++++ SPECS/rdma-core.spec | 29 ++++---- 5 files changed, 80 insertions(+), 87 deletions(-) delete mode 100644 SOURCES/0001-Only-load-i40iw-for-i40e-device-with-specific-PCI-ID.patch create mode 100644 SOURCES/0001-tests-Fix-comparing-qp_state-for-iWARP-providers.patch diff --git a/.gitignore b/.gitignore index 4d96517..dfbd510 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/rdma-core-35.0.tar.gz +SOURCES/rdma-core-37.2.tar.gz SOURCES/rxe_cfg.8.gz diff --git a/.rdma-core.metadata b/.rdma-core.metadata index e647ac3..cb16315 100644 --- a/.rdma-core.metadata +++ b/.rdma-core.metadata @@ -1,2 +1,2 @@ -de4b0a7d11ba10b4d35687a6dce8d3d6a60df342 SOURCES/rdma-core-35.0.tar.gz +ec4596f069873bc3119f0cf2ed076a0aef61c2cf SOURCES/rdma-core-37.2.tar.gz 9187638355d9bee854989bbfc6c2956301fd52aa SOURCES/rxe_cfg.8.gz diff --git a/SOURCES/0001-Only-load-i40iw-for-i40e-device-with-specific-PCI-ID.patch b/SOURCES/0001-Only-load-i40iw-for-i40e-device-with-specific-PCI-ID.patch deleted file mode 100644 index 2d1fb74..0000000 --- a/SOURCES/0001-Only-load-i40iw-for-i40e-device-with-specific-PCI-ID.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 23408827f9f74062a43041154a78505bc9fa4ed8 Mon Sep 17 00:00:00 2001 -From: Honggang Li -Date: Tue, 3 Nov 2020 20:21:33 +0800 -Subject: [PATCH] Only load i40iw for i40e device with specific PCI IDs - -This a redhat specific hack to handle i40iw huge memory consuming issue. - -rdma-core upstream maintainer believes this issue should be handled in -kernel space with i40e/i40iw driver. Unfortunately, Intel does not care -about this request. - - -Just for the record, why is it a bad idea to use the original udev -rule that contained "kmod load i40iw". Two reasons: -a) for most i40e NICs i40iw is irrelevant and we have the memory issue -that Intel won't fix. -b) if i40iw is loaded you can no longer unload i40e by itself. -$ modprobe i40iw -$ modprobe -r i40e -modprobe: FATAL: Module i40e is in use. - -Bad user experience and we may break existing user scripts! -Even worse unloading i40iw unloads i40e implicitly. -Also i40iw is going away upstream at some point. - - -Resolves: bz1850462 - -Signed-off-by: Honggang Li ---- - kernel-boot/rdma-hw-modules.rules | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -diff --git a/kernel-boot/rdma-hw-modules.rules b/kernel-boot/rdma-hw-modules.rules -index 95eaf7206702..541516eb98f4 100644 ---- a/kernel-boot/rdma-hw-modules.rules -+++ b/kernel-boot/rdma-hw-modules.rules -@@ -11,11 +11,29 @@ ENV{ID_NET_DRIVER}=="be2net", RUN{builtin}+="kmod load ocrdma" - ENV{ID_NET_DRIVER}=="bnxt_en", RUN{builtin}+="kmod load bnxt_re" - ENV{ID_NET_DRIVER}=="cxgb4", RUN{builtin}+="kmod load iw_cxgb4" - ENV{ID_NET_DRIVER}=="hns", RUN{builtin}+="kmod load hns_roce" --ENV{ID_NET_DRIVER}=="i40e", RUN{builtin}+="kmod load i40iw" - ENV{ID_NET_DRIVER}=="mlx4_en", RUN{builtin}+="kmod load mlx4_ib" - ENV{ID_NET_DRIVER}=="mlx5_core", RUN{builtin}+="kmod load mlx5_ib" - ENV{ID_NET_DRIVER}=="qede", RUN{builtin}+="kmod load qedr" - -+# Because most of X722 don't support RDMA, only load i40iw for X722 with specific device IDs. -+#define I40E_INTEL_VENDOR_ID 0x8086 -+#define I40E_DEV_ID_X722 0x37CC -+#define I40E_DEV_ID_KX_X722 0x37CE -+#define I40E_DEV_ID_QSFP_X722 0x37CF -+#define I40E_DEV_ID_SFP_X722 0x37D0 -+#define I40E_DEV_ID_1G_BASE_T_X722 0x37D1 -+#define I40E_DEV_ID_10G_BASE_T_X722 0x37D2 -+#define I40E_DEV_ID_SFP_I_X722 0x37D3 -+#define I40E_DEV_ID_X722_VF 0x37CD -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37cc", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37ce", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37cf", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37d0", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37d1", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37d2", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37d3", RUN{builtin}+="kmod load i40iw" -+ENV{ID_NET_DRIVER}=="i40e", ENV{ID_VENDOR_ID}=="0x8086", ENV{ID_MODEL_ID}=="0x37cd", RUN{builtin}+="kmod load i40iw" -+ - # The user must explicitly load these modules via /etc/modules-load.d/ or otherwise - # rxe - --- -2.25.4 - diff --git a/SOURCES/0001-tests-Fix-comparing-qp_state-for-iWARP-providers.patch b/SOURCES/0001-tests-Fix-comparing-qp_state-for-iWARP-providers.patch new file mode 100644 index 0000000..686531e --- /dev/null +++ b/SOURCES/0001-tests-Fix-comparing-qp_state-for-iWARP-providers.patch @@ -0,0 +1,63 @@ +From 698f2ae804767635342694d31d9590fe6ad2217e Mon Sep 17 00:00:00 2001 +From: Kamal Heib +Date: Wed, 8 Dec 2021 16:12:11 +0200 +Subject: [PATCH] tests: Fix comparing qp_state for iWARP providers. + +The initial QP state for iWARP providers is IBV_QPS_INIT (not +IBV_QPS_RESET), Change the test to handle this case. + +Signed-off-by: Kamal Heib +--- + tests/test_qp.py | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/tests/test_qp.py b/tests/test_qp.py +index b952c95e..a66f724f 100644 +--- a/tests/test_qp.py ++++ b/tests/test_qp.py +@@ -14,6 +14,7 @@ from pyverbs.pyverbs_error import PyverbsRDMAError + from pyverbs.qp import QPInitAttr, QPAttr, QP + from tests.base import PyverbsAPITestCase + import pyverbs.utils as pu ++import pyverbs.device as d + import pyverbs.enums as e + from pyverbs.pd import PD + from pyverbs.cq import CQ +@@ -177,6 +178,11 @@ class QPTest(PyverbsAPITestCase): + self.assertLessEqual(orig_cap.max_recv_sge, init_attr.cap.max_recv_sge) + self.assertLessEqual(orig_cap.max_inline_data, init_attr.cap.max_inline_data) + ++ def get_node_type(self): ++ for dev in d.get_device_list(): ++ if dev.name.decode() == self.ctx.name: ++ return dev.node_type ++ + def query_qp_common_test(self, qp_type): + with PD(self.ctx) as pd: + with CQ(self.ctx, 100, None, None, 0) as cq: +@@ -190,14 +196,20 @@ class QPTest(PyverbsAPITestCase): + caps = qia.cap + qp = self.create_qp(pd, qia, False, False, self.ib_port) + qp_attr, qp_init_attr = qp.query(e.IBV_QP_STATE | e.IBV_QP_CAP) +- self.verify_qp_attrs(caps, e.IBV_QPS_RESET, qp_init_attr, qp_attr) ++ if self.get_node_type() == e.IBV_NODE_RNIC: ++ self.verify_qp_attrs(caps, e.IBV_QPS_INIT, qp_init_attr, qp_attr) ++ else: ++ self.verify_qp_attrs(caps, e.IBV_QPS_RESET, qp_init_attr, qp_attr) + + # Extended QP + qia = get_qp_init_attr_ex(cq, pd, self.attr, self.attr_ex, qp_type) + caps = qia.cap # Save them to verify values later + qp = self.create_qp(self.ctx, qia, True, False, self.ib_port) + qp_attr, qp_init_attr = qp.query(e.IBV_QP_STATE | e.IBV_QP_CAP) +- self.verify_qp_attrs(caps, e.IBV_QPS_RESET, qp_init_attr, qp_attr) ++ if self.get_node_type() == e.IBV_NODE_RNIC: ++ self.verify_qp_attrs(caps, e.IBV_QPS_INIT, qp_init_attr, qp_attr) ++ else: ++ self.verify_qp_attrs(caps, e.IBV_QPS_RESET, qp_init_attr, qp_attr) + + def test_query_rc_qp(self): + """ +-- +2.33.1 + diff --git a/SPECS/rdma-core.spec b/SPECS/rdma-core.spec index c07e120..aec4239 100644 --- a/SPECS/rdma-core.spec +++ b/SPECS/rdma-core.spec @@ -1,5 +1,5 @@ Name: rdma-core -Version: 35.0 +Version: 37.2 Release: 1%{?dist} Summary: RDMA core userspace libraries and daemons @@ -19,7 +19,8 @@ Source3: rxe_cfg.8.gz Patch3: udev-keep-NAME_KERNEL-as-default-interface-naming-co.patch # RHEL specific patch for OPA ibacm plugin Patch300: 0001-ibacm-acm.c-load-plugin-while-it-is-soft-link.patch -Patch301: 0001-Only-load-i40iw-for-i40e-device-with-specific-PCI-ID.patch + +Patch301: 0001-tests-Fix-comparing-qp_state-for-iWARP-providers.patch # Do not build static libs by default. %define with_static %{?_with_static: 1} %{?!_with_static: 0} @@ -92,7 +93,6 @@ dracut rules, and the rdma-ndd utility. %package devel Summary: RDMA core development libraries and headers -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libibverbs%{?_isa} = %{version}-%{release} Provides: libibverbs-devel = %{version}-%{release} Obsoletes: libibverbs-devel < %{version}-%{release} @@ -102,7 +102,6 @@ Obsoletes: libibumad-devel < %{version}-%{release} Requires: librdmacm%{?_isa} = %{version}-%{release} Provides: librdmacm-devel = %{version}-%{release} Obsoletes: librdmacm-devel < %{version}-%{release} -Requires: ibacm%{?_isa} = %{version}-%{release} Provides: ibacm-devel = %{version}-%{release} Obsoletes: ibacm-devel < %{version}-%{release} Requires: infiniband-diags%{?_isa} = %{version}-%{release} @@ -130,15 +129,14 @@ 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} Provides: libcxgb4 = %{version}-%{release} Obsoletes: libcxgb4 < %{version}-%{release} Provides: libefa = %{version}-%{release} Obsoletes: libefa < %{version}-%{release} Provides: libhfi1 = %{version}-%{release} Obsoletes: libhfi1 < %{version}-%{release} -Provides: libi40iw = %{version}-%{release} -Obsoletes: libi40iw < %{version}-%{release} +Provides: libirdma = %{version}-%{release} +Obsoletes: libirdma < %{version}-%{release} Provides: libmlx4 = %{version}-%{release} Obsoletes: libmlx4 < %{version}-%{release} %ifnarch s390 @@ -162,7 +160,7 @@ Device-specific plug-in ibverbs userspace drivers are included: - libefa: Amazon Elastic Fabric Adapter - libhfi1: Intel Omni-Path HFI - libhns: HiSilicon Hip06 SoC -- libi40iw: Intel Ethernet Connection X722 RDMA +- libirdma: Intel Ethernet Connection RDMA - libmlx4: Mellanox ConnectX-3 InfiniBand HCA - libmlx5: Mellanox Connect-IB/X-4+ InfiniBand HCA - libqedr: QLogic QL4xxx RoCE HCA @@ -184,7 +182,6 @@ displays information about RDMA devices. %package -n ibacm Summary: InfiniBand Communication Manager Assistant %{?systemd_requires} -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libibumad%{?_isa} = %{version}-%{release} Requires: libibverbs%{?_isa} = %{version}-%{release} @@ -201,7 +198,6 @@ library knows how to talk directly to the ibacm daemon to retrieve data. %package -n iwpmd Summary: iWarp Port Mapper userspace daemon %{?systemd_requires} -Requires: %{name}%{?_isa} = %{version}-%{release} %description -n iwpmd iwpmd provides a userspace service for iWarp drivers to claim @@ -209,7 +205,6 @@ tcp ports through the standard socket interface. %package -n libibumad Summary: OpenFabrics Alliance InfiniBand umad (userspace management datagram) library -Requires: %{name}%{?_isa} = %{version}-%{release} %description -n libibumad libibumad provides the userspace management datagram (umad) library @@ -218,7 +213,6 @@ are used by the IB diagnostic and management tools, including OpenSM. %package -n librdmacm Summary: Userspace RDMA Connection Manager -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libibverbs%{?_isa} = %{version}-%{release} %description -n librdmacm @@ -238,7 +232,6 @@ Obsoletes: srptools <= 1.0.3 Provides: srptools = %{version}-%{release} Obsoletes: openib-srptools <= 0.0.6 %{?systemd_requires} -Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libibumad%{?_isa} = %{version}-%{release} Requires: libibverbs%{?_isa} = %{version}-%{release} @@ -293,7 +286,7 @@ easy, object-oriented access to IB verbs. -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name} \ -DCMAKE_INSTALL_UDEV_RULESDIR:PATH=%{_udevrulesdir} \ -DCMAKE_INSTALL_PERLDIR:PATH=%{perl_vendorlib} \ - -DWITH_IBDIAGS_COMPAT:BOOL=False \ + -DENABLE_IBDIAGS_COMPAT:BOOL=False \ %if %{with_static} -DENABLE_STATIC=1 \ %endif @@ -648,6 +641,14 @@ fi %endif %changelog +* Thu Jan 06 2022 Honggang Li - 37.2-1 +- Update to upstream v37.2 release for fixes +- Resolves: bz2008509, bz2024865, bz1915555 + +* Tue Nov 09 2021 Honggang Li - 37.1-1 +- Update to upstream v37.1 release for features and fixes +- Resolves: bz1982200, bz1990120, bz1982131 + * Fri May 14 2021 Honggang Li - 35.0-1 - Update to upstream v35 release for features and fixes - Resolves: bz1915311