diff --git a/.gitignore b/.gitignore index e11baba..eaeeb92 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libvma-9.6.4.tar.gz +SOURCES/libvma-9.8.20.tar.gz diff --git a/.libvma.metadata b/.libvma.metadata index 4ae8898..32b44b8 100644 --- a/.libvma.metadata +++ b/.libvma.metadata @@ -1 +1 @@ -c2f2913be710c658f9856e4c9cfb7a9af2a606d2 SOURCES/libvma-9.6.4.tar.gz +fab25759447602ec4602b1c2c949b8f153d34e1d SOURCES/libvma-9.8.20.tar.gz diff --git a/SOURCES/0001-issue-3525812-Fix-buffer-leak-socketextreme.patch b/SOURCES/0001-issue-3525812-Fix-buffer-leak-socketextreme.patch new file mode 100644 index 0000000..8e95801 --- /dev/null +++ b/SOURCES/0001-issue-3525812-Fix-buffer-leak-socketextreme.patch @@ -0,0 +1,35 @@ +From 92f3868fd0474956afe6cb43f8de4d16abba83d6 Mon Sep 17 00:00:00 2001 +From: Iftah Levi +Date: Sun, 9 Jul 2023 14:08:44 +0300 +Subject: [PATCH] issue: 3525812 Fix buffer leak socketextreme + +In reclaim buffer api - vma_socketxtreme_free_vma_packets +we use reclaim_recv_buffers method which uses try_lock +on the ring, but in case the lock has failed - buffers +will not be returned. +The fix - in case the ring is locked - reclaim buffers +to the global pool. + +Signed-off-by: Iftah Levi +--- + src/vma/sock/sock-redirect.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/vma/sock/sock-redirect.cpp b/src/vma/sock/sock-redirect.cpp +index 4308d21e8478..9b232e6093ca 100644 +--- a/src/vma/sock/sock-redirect.cpp ++++ b/src/vma/sock/sock-redirect.cpp +@@ -466,7 +466,9 @@ int vma_socketxtreme_free_vma_packets(struct vma_packet_desc_t *packets, int num + p_socket_object->free_buffs(packets[i].total_len); + } + if (rng) { +- rng->reclaim_recv_buffers(desc); ++ if (!rng->reclaim_recv_buffers(desc)) { ++ g_buffer_pool_rx->put_buffers_thread_safe(desc); ++ } + } else { + goto err; + } +-- +2.41.0 + diff --git a/SPECS/libvma.spec b/SPECS/libvma.spec index 151643c..d776432 100644 --- a/SPECS/libvma.spec +++ b/SPECS/libvma.spec @@ -1,13 +1,14 @@ %{!?configure_options: %global configure_options %{nil}} Name: libvma -Version: 9.6.4 -Release: 1%{?dist} +Version: 9.8.20 +Release: 3%{?dist} Summary: A library for boosting TCP and UDP traffic (over RDMA hardware) License: GPLv2 or BSD Url: https://github.com/Mellanox/libvma Source0: https://github.com/Mellanox/libvma/archive/%{version}/%{name}-%{version}.tar.gz +Patch0: 0001-issue-3525812-Fix-buffer-leak-socketextreme.patch # libvma currently supports only the following architectures ExclusiveArch: x86_64 ppc64le ppc64 aarch64 @@ -99,6 +100,23 @@ rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/vma %{_mandir}/man8/vma_stats.* %changelog +* Mon Jul 31 2023 Kamal Heib - 9.8.20-3 +- Rebuilt for libvma-utils +- Resolves: rhbz#2217883 + +* Tue Jul 18 2023 Kamal Heib - 9.8.20-2 +- Fix Socketxtreme buffer reclaim leak +- Resolves: rhbz#2223720 + +* Mon Jun 05 2023 Kamal Heib - 9.8.20-1.1 +- Add gating tests +- Resolves: rhbz#2170074 + +* Thu Jun 01 2023 Kamal Heib - 9.8.20-1 +- Update to upstream release 9.8.20. +- Add gating tests +- Resolves: rhbz#2170074 + * Wed Aug 17 2022 Michal Schmidt - 9.6.4-1 - Update to upstream release 9.6.4. - Resolves: rhbz#2049572