import UBI rdma-core-57.0-2.el9

This commit is contained in:
eabdullin 2025-11-11 15:45:12 +00:00
parent da38755df7
commit 326cbd7b0b
6 changed files with 162 additions and 43 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rdma-core-54.0.tar.gz
SOURCES/rdma-core-57.0.tar.gz

View File

@ -1 +1 @@
14c744748702bc1d0baf229af85accdd886a716c SOURCES/rdma-core-54.0.tar.gz
30b959249471bd41a038916abff1f24cd76ec217 SOURCES/rdma-core-57.0.tar.gz

View File

@ -1,34 +0,0 @@
From 9558f227b158291bc3eb7044938d711e388802ce Mon Sep 17 00:00:00 2001
From: Selvin Xavier <selvin.xavier@broadcom.com>
Date: Mon, 10 Mar 2025 07:38:03 -0700
Subject: [PATCH] bnxt_re/lib: Fix the data copy during the low latency push
path
The pointer used in the destination buffer is not correctly
type casted, because of which the data gets corrupted while copying.
The issue is seen in the previous adapters that has the low latency
push enabled. Fixing the pointer casting.
Fixes: 52d0870c3eac ("bnxt_re/lib: Enable low latency push")
Reported-By: Kamal Heib <kheib@redhat.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
---
providers/bnxt_re/main.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/providers/bnxt_re/main.h b/providers/bnxt_re/main.h
index 7a9d48e1cf01..067b0c18df8d 100644
--- a/providers/bnxt_re/main.h
+++ b/providers/bnxt_re/main.h
@@ -598,7 +598,7 @@ static inline void bnxt_re_copy_data_to_pb(struct bnxt_re_push_buffer *pbuf,
int indx;
for (indx = 0; indx < idx; indx++) {
- dst = (uintptr_t *)(pbuf->pbuf + 2 * (indx + offset));
+ dst = (uintptr_t *)(pbuf->pbuf) + 2 * indx + offset;
src = (uintptr_t *)(pbuf->wqe[indx]);
mmio_write64(dst, *src);
--
2.49.0

View File

@ -0,0 +1,89 @@
From a9eb7409fb0b6af5dc54ae222286926b6a028ef0 Mon Sep 17 00:00:00 2001
From: Edward Srouji <edwards@nvidia.com>
Date: Tue, 4 Mar 2025 16:02:35 +0200
Subject: [PATCH] tests: Ensure graceful resource cleaning
A SEGFAULT was observed recently on some environments with
python 3.12.X.
To work around the issue and ensure that python garbage collector exiting
gracefully, a new decorator was added that catches SkipTest unittest
exceptions and closes the context and its underlying resources.
An a example of a segmentation fault occurrence that this test fixes:
$ python3 tests/run_tests.py test_mlx5_dma_memcpy
sTraceback (most recent call last):
File "cq.pyx", line 359, in pyverbs.cq.CQEX.close
pyverbs.pyverbs_error.PyverbsRDMAError: Failed to destroy CQEX. Errno:
9, Bad file descriptor
Exception ignored in: 'pyverbs.cq.CQEX.__dealloc__'
Traceback (most recent call last):
File "cq.pyx", line 359, in pyverbs.cq.CQEX.close
pyverbs.pyverbs_error.PyverbsRDMAError: Failed to destroy CQEX. Errno:
9, Bad file descriptor
Segmentation fault (core dumped)
Signed-off-by: Edward Srouji <edwards@nvidia.com>
---
tests/base.py | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/tests/base.py b/tests/base.py
index 2738714612ec..c6ffa1beca1a 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -3,6 +3,7 @@
import multiprocessing as mp
import subprocess
+import functools
import unittest
import tempfile
import random
@@ -532,7 +533,35 @@ class RDMACMBaseTest(RDMATestCase):
sys.exit(2)
-class BaseResources(object):
+def catch_skiptest(func):
+ """
+ Decorator to catch unittest.SkipTest in __init__ resource functions.
+ It gracefully closes the context and all of its underlying resources.
+ """
+ @functools.wraps(func)
+ def wrapper(self, *args, **kwargs):
+ try:
+ func(self, *args, **kwargs)
+ except unittest.SkipTest as e:
+ if hasattr(self, 'ctx') and self.ctx:
+ self.ctx.close()
+ raise e
+ return wrapper
+
+
+class SkipTestMeta(type):
+ """
+ Metaclass to automatically wrap __init__ in catch_skiptest.
+ It should only be used in resource classes, such as those inheriting from
+ BaseResources.
+ """
+ def __new__(cls, name, bases, dct):
+ if "__init__" in dct:
+ dct["__init__"] = catch_skiptest(dct["__init__"])
+ return super().__new__(cls, name, bases, dct)
+
+
+class BaseResources(object, metaclass=SkipTestMeta):
"""
BaseResources class is a base aggregator object which contains basic
resources like Context and PD. It opens a context over the given device
@@ -548,6 +577,7 @@ class BaseResources(object):
self.dev_name = dev_name
self.gid_index = gid_index
self.ib_port = ib_port
+ self.ctx = None
self.create_context()
self.create_pd()
--
2.49.0

View File

@ -0,0 +1,43 @@
From 47c3855f3b84c47cb471cbba8090a6997e07be57 Mon Sep 17 00:00:00 2001
From: Shachar Kagan <skagan@nvidia.com>
Date: Mon, 28 Apr 2025 17:18:18 +0300
Subject: [PATCH] pyverbs: Change PD object return type
Change PD object return type to be compatible with Cython 3.x
Signed-off-by: Shachar Kagan <skagan@nvidia.com>
Signed-off-by: Edward Srouji <edwards@nvidia.com>
---
pyverbs/pd.pyx | 2 +-
pyverbs/providers/mlx5/mlx5dv_objects.pyx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/pyverbs/pd.pyx b/pyverbs/pd.pyx
index 2d84e0b68d10..d8845e8a058b 100644
--- a/pyverbs/pd.pyx
+++ b/pyverbs/pd.pyx
@@ -151,7 +151,7 @@ cdef class PD(PyverbsCM):
@property
def pd(self):
- return <object>self.pd
+ return <uintptr_t>self.pd
cdef void *pd_alloc(v.ibv_pd *pd, void *pd_context, size_t size,
diff --git a/pyverbs/providers/mlx5/mlx5dv_objects.pyx b/pyverbs/providers/mlx5/mlx5dv_objects.pyx
index e7776205a150..0567e81a06e8 100644
--- a/pyverbs/providers/mlx5/mlx5dv_objects.pyx
+++ b/pyverbs/providers/mlx5/mlx5dv_objects.pyx
@@ -182,7 +182,7 @@ cdef class Mlx5DvObj(PyverbsObject):
self.dv_qp = dv_qp
if pd:
dv_pd = Mlx5DvPD()
- self.obj.pd.in_ = <v.ibv_pd*>pd.pd
+ self.obj.pd.in_ = <v.ibv_pd*><uintptr_t>pd.pd
self.obj.pd.out = &(dv_pd.dv_pd)
self.dv_pd = dv_pd
if srq:
--
2.49.0

View File

@ -1,5 +1,5 @@
Name: rdma-core
Version: 54.0
Version: 57.0
Release: 2%{?dist}
Summary: RDMA core userspace libraries and daemons
@ -10,7 +10,8 @@ Summary: RDMA core userspace libraries and daemons
License: GPLv2 or BSD
Url: https://github.com/linux-rdma/rdma-core
Source: https://github.com/linux-rdma/rdma-core/releases/download/v%{version}/%{name}-%{version}.tar.gz
Patch0001: 0001-bnxt_re-lib-Fix-the-data-copy-during-the-low-latency.patch
Patch0001: 0001-tests-Ensure-graceful-resource-cleaning.patch
Patch0002: 0002-pyverbs-Change-PD-object-return-type.patch
Patch9998: 9998-kernel-boot-Do-not-perform-device-rename-on-OPA-devi.patch
Patch9999: 9999-udev-keep-NAME_KERNEL-as-default-interface-naming-co.patch
# Do not build static libs by default.
@ -267,12 +268,13 @@ easy, object-oriented access to IB verbs.
%prep
%setup -q
%patch0001 -p1
%patch -P 0001 -p1
%patch -P 0002 -p1
%if 0%{?fedora}
%patch9998 -p1
%patch -P 9998 -p1
%endif
%if 0%{?rhel}
%patch9999 -p1
%patch -P 9999 -p1
%endif
%build
@ -360,6 +362,17 @@ if [ -x /sbin/udevadm ]; then
/sbin/udevadm trigger --subsystem-match=net --action=change || true
/sbin/udevadm trigger --subsystem-match=infiniband_mad --action=change || true
fi
%systemd_post rdma-load-modules@rdma.service
%systemd_post rdma-load-modules@infiniband.service
%systemd_post rdma-load-modules@roce.service
%preun -n rdma-core
%systemd_preun rdma-load-modules@rdma.service
%systemd_preun rdma-load-modules@infiniband.service
%systemd_preun rdma-load-modules@roce.service
%postun -n rdma-core
%systemd_postun_with_restart rdma-load-modules@rdma.service
%systemd_postun_with_restart rdma-load-modules@infiniband.service
%systemd_postun_with_restart rdma-load-modules@roce.service
%post -n ibacm
%systemd_post ibacm.service
@ -620,9 +633,17 @@ fi
%endif
%changelog
* Fri May 02 2025 Kamal Heib <kheib@redhat.com> - 54.0-2
* Thu Aug 07 2025 Kamal Heib <kheib@redhat.com> - 57.0-2
- Fix pyverbs tests
- Resolves: RHEL-107929, RHEL-107930
* Tue May 27 2025 Kamal Heib <kheib@redhat.com> - 57.0-1
- Rebase to upstream release v57.0
- Resolves: RHEL-76570, RHEL-45644, RHEL-72077, RHEL-68506, RHEL-94449
* Wed Apr 30 2025 Kamal Heib <kheib@redhat.com>
- Fix data corruption in bnxt_re
- Resolves: RHEL-89425
- Resolves: RHEL-89179
* Tue Oct 29 2024 Kamal Heib <kheib@redhat.com> - 54.0-1
- Rebase to upstream release v54.0