Update to 9.3.1

Signed-off-by: Igor Ivanov <igori@nvidia.com>
This commit is contained in:
Igor Ivanov 2021-06-17 12:10:15 +00:00
parent c88ecf54f9
commit 139226680a
8 changed files with 71 additions and 298 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
/libvma-9.0.2.tar.gz
/libvma-9.1.1.tar.gz
/libvma-9.2.2.tar.gz
/libvma-9.3.1.tar.gz

View File

@ -0,0 +1,61 @@
From 061e5640686f670398856b8640161762ce56d5e5 Mon Sep 17 00:00:00 2001
From: Igor Ivanov <igori@nvidia.com>
Date: Thu, 17 Jun 2021 16:07:31 +0300
Subject: [PATCH] Fix fc35 issues
- glibc:
The function pthread_yield has been deprecated; programs should use
the equivalent standard function sched_yield instead.
- systemd:
Fix systemd detection
Signed-off-by: Igor Ivanov <igori@nvidia.com>
---
Makefile.am | 10 ++--------
src/vma/iomux/epfd_info.cpp | 2 +-
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index ee543c8f..c8dea6ee 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,21 +19,15 @@ mydocdir = $(if $(docdir),$(docdir),${datadir}/doc/$(distdir))
mydoc_DATA = README CHANGES
install-exec-hook:
- if type systemctl >/dev/null 2>&1; then \
+ if systemctl >/dev/null 2>&1; then \
mkdir -p $(DESTDIR)$(prefix)/lib/systemd/system/; \
cp $(top_builddir)/contrib/scripts/vma.service $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
chmod 644 $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
- else \
- mkdir -p $(DESTDIR)/$(sysconfdir)/init.d; \
- cp $(top_builddir)/contrib/scripts/vma.init $(DESTDIR)$(sysconfdir)/init.d/vma; \
- chmod 755 $(DESTDIR)$(sysconfdir)/init.d/vma; \
fi
uninstall-hook:
- if type systemctl >/dev/null 2>&1; then \
+ if systemctl >/dev/null 2>&1; then \
rm -rf $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
- else \
- rm -rf $(DESTDIR)$(sysconfdir)/init.d/vma; \
fi
install-all: install
diff --git a/src/vma/iomux/epfd_info.cpp b/src/vma/iomux/epfd_info.cpp
index c7670c7b..d7c6c4fc 100644
--- a/src/vma/iomux/epfd_info.cpp
+++ b/src/vma/iomux/epfd_info.cpp
@@ -624,7 +624,7 @@ int epfd_info::ring_poll_and_process_element(uint64_t *p_poll_sn, void* pv_fd_re
m_ring_map_lock.unlock();
- if (m_sysvar_thread_mode == THREAD_MODE_PLENTY && ret_total == 0 && errno == EAGAIN) pthread_yield();
+ if (m_sysvar_thread_mode == THREAD_MODE_PLENTY && ret_total == 0 && errno == EAGAIN) sched_yield();
if (ret_total) {
__log_func("ret_total=%d", ret_total);
--
2.18.1

View File

@ -1,34 +0,0 @@
From 96a275dbffcc967cdbd4c29c9a3196a9518bae00 Mon Sep 17 00:00:00 2001
From: Igor Ivanov <igor.ivanov.va@gmail.com>
Date: Fri, 19 Jun 2020 16:29:25 +0300
Subject: [PATCH] Update systemctl files
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
---
contrib/scripts/vma.service.in | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/contrib/scripts/vma.service.in b/contrib/scripts/vma.service.in
index e268173f..13457b2f 100644
--- a/contrib/scripts/vma.service.in
+++ b/contrib/scripts/vma.service.in
@@ -1,14 +1,12 @@
[Unit]
-Description=VMA Daemon. Version: @VERSION@-@VMA_LIBRARY_RELEASE@
-After=network.target syslog.target
-Requires=network.target
+Description=VMA Daemon
+After=network.target
[Service]
Type=forking
Restart=on-failure
ExecStart=@prefix@/sbin/vma start
ExecStop=@prefix@/sbin/vma stop
-ExecReload=@prefix@/sbin/vma restart
RestartForceExitStatus=1 SIGTERM
[Install]
--
2.18.1

View File

@ -1,54 +0,0 @@
From 402a7f565d6171d195a5b65b9d54f42d802211c1 Mon Sep 17 00:00:00 2001
From: Igor Ivanov <igor.ivanov.va@gmail.com>
Date: Tue, 14 Jul 2020 19:34:02 +0300
Subject: [PATCH] Remove 30-libvma-limits.conf
RDMA communications require that physical memory in the computer
be pinned. Pinning memory is normally a very privileged operation.
In order to allow users other than root to run large RDMA applications,
it will likely be necessary to increase the amount of memory
that non-root users are allowed to pin in the system.
This is done by adding a file in the /etc/security/limits.d/ directory.
It can be done by an administrator of system for user/group that
use libvma.
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
---
src/vma/Makefile.am | 5 +----
src/vma/util/30-libvma-limits.conf | 6 ------
2 files changed, 1 insertion(+), 10 deletions(-)
delete mode 100644 src/vma/util/30-libvma-limits.conf
diff --git a/src/vma/Makefile.am b/src/vma/Makefile.am
index 6a710a72..8f73fe93 100644
--- a/src/vma/Makefile.am
+++ b/src/vma/Makefile.am
@@ -28,12 +28,9 @@ EXTRA_DIST = \
util/hash_map.inl \
dev/cq_mgr.inl \
dev/cq_mgr_mlx5.inl \
- util/libvma.conf \
- util/30-libvma-limits.conf
+ util/libvma.conf
sysconf_DATA = util/libvma.conf
-othersysconfdir=$(sysconfdir)/security/limits.d
-othersysconf_DATA=util/30-libvma-limits.conf
otherincludedir = $(includedir)/mellanox
otherinclude_HEADERS = vma_extra.h
diff --git a/src/vma/util/30-libvma-limits.conf b/src/vma/util/30-libvma-limits.conf
deleted file mode 100644
index 9c0d8bc0..00000000
--- a/src/vma/util/30-libvma-limits.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# Default limits that are needed for proper work of libvma
-# Read more about this topic in the VMA's User Manual
-
-* - memlock unlimited
-* soft memlock unlimited
-* hard memlock unlimited
--
2.18.1

View File

@ -1,73 +0,0 @@
From dd5cfb9017c0c6ac233faf4fb17ebfa8a2101cf8 Mon Sep 17 00:00:00 2001
From: Igor Ivanov <igor.ivanov.va@gmail.com>
Date: Tue, 14 Jul 2020 21:33:31 +0300
Subject: [PATCH] Use vmad for systemd
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
---
Makefile.am | 9 ---------
contrib/scripts/vma.service.in | 3 +--
tools/daemon/daemon.c | 5 -----
3 files changed, 1 insertion(+), 16 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 6eecd5af..dc01e13e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,23 +23,14 @@ mydoc_DATA = README.txt journal.txt VMA_VERSION
install-exec-hook:
if type systemctl >/dev/null 2>&1; then \
- cp $(top_builddir)/contrib/scripts/vma.init $(DESTDIR)$(sbindir)/vma; \
- chmod 755 $(DESTDIR)$(sbindir)/vma; \
mkdir -p $(DESTDIR)$(prefix)/lib/systemd/system/; \
cp $(top_builddir)/contrib/scripts/vma.service $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
chmod 644 $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
- else \
- mkdir -p $(DESTDIR)/$(sysconfdir)/init.d; \
- cp $(top_builddir)/contrib/scripts/vma.init $(DESTDIR)$(sysconfdir)/init.d/vma; \
- chmod 755 $(DESTDIR)$(sysconfdir)/init.d/vma; \
fi
uninstall-hook:
if type systemctl >/dev/null 2>&1; then \
- rm -rf $(DESTDIR)$(sbindir)/vma; \
rm -rf $(DESTDIR)$(prefix)/lib/systemd/system/vma.service; \
- else \
- rm -rf $(DESTDIR)$(sysconfdir)/init.d/vma; \
fi
install-all: install
diff --git a/contrib/scripts/vma.service.in b/contrib/scripts/vma.service.in
index 13457b2f..e6f5a25b 100644
--- a/contrib/scripts/vma.service.in
+++ b/contrib/scripts/vma.service.in
@@ -5,8 +5,7 @@ After=network.target
[Service]
Type=forking
Restart=on-failure
-ExecStart=@prefix@/sbin/vma start
-ExecStop=@prefix@/sbin/vma stop
+ExecStart=@prefix@/sbin/vmad
RestartForceExitStatus=1 SIGTERM
[Install]
diff --git a/tools/daemon/daemon.c b/tools/daemon/daemon.c
index 4444258d..9d23395a 100644
--- a/tools/daemon/daemon.c
+++ b/tools/daemon/daemon.c
@@ -66,11 +66,6 @@ int main(int argc, char *argv[])
/* Setup syslog logging */
openlog(MODULE_NAME, LOG_PID, LOG_LOCAL5);
- /* already a daemon */
- if (getppid() == 1) {
- return 0;
- }
-
/* command line parsing... */
config_def();
log_info("Starting\n");
--
2.18.1

View File

@ -1,127 +0,0 @@
From d64a8e295ad39032790501955e3bdb7d86e8b05f Mon Sep 17 00:00:00 2001
From: Igor Ivanov <igor.ivanov.va@gmail.com>
Date: Wed, 16 Dec 2020 13:46:17 +0200
Subject: [PATCH] Fix issues for gcc-11
1. The register storage class specifier is deprecated in C++11
2. Disable -Wno-free-nonheap-object diagnostic that looks as
incorrect for gcc-11
3. [-Werror=stringop-overread] in std::string()
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
---
configure.ac | 8 ++++++--
src/utils/asm-x86.h | 2 +-
src/vma/dev/net_device_val.cpp | 6 +++---
src/vma/sock/cleanable_obj.h | 9 ++++++++-
src/vma/util/utils.cpp | 4 ++--
5 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1540324a..811eb421 100644
--- a/configure.ac
+++ b/configure.ac
@@ -144,8 +144,12 @@ AC_MSG_CHECKING([for compiler])
case $CC in
gcc*|g++*)
AC_MSG_RESULT([gcc])
- CFLAGS="$CFLAGS -Wall -Wextra -Werror -Wundef -ffunction-sections -fdata-sections -Wsequence-point -pipe -Winit-self -Wmissing-include-dirs"
- CXXFLAGS="$CXXFLAGS -Wshadow -Wall -Wextra -Werror -Wundef -ffunction-sections -fdata-sections -Wsequence-point -pipe -Winit-self -Wmissing-include-dirs"
+ CFLAGS="$CFLAGS -Wall -Wextra -Werror -Wundef \
+ -ffunction-sections -fdata-sections -Wsequence-point -pipe -Winit-self -Wmissing-include-dirs \
+ -Wno-free-nonheap-object "
+ CXXFLAGS="$CXXFLAGS -Wshadow -Wall -Wextra -Werror -Wundef \
+ -ffunction-sections -fdata-sections -Wsequence-point -pipe -Winit-self -Wmissing-include-dirs \
+ -Wno-free-nonheap-object "
;;
icc*|icpc*)
AC_MSG_RESULT([icc])
diff --git a/src/utils/asm-x86.h b/src/utils/asm-x86.h
index 5dfb6f42..4e8f03ca 100644
--- a/src/utils/asm-x86.h
+++ b/src/utils/asm-x86.h
@@ -110,7 +110,7 @@ static inline int atomic_fetch_and_add(int x, volatile int *ptr)
*/
static inline void gettimeoftsc(unsigned long long *p_tscval)
{
- register uint32_t upper_32, lower_32;
+ uint32_t upper_32, lower_32;
// ReaD Time Stamp Counter (RDTCS)
__asm__ __volatile__("rdtsc" : "=a" (lower_32), "=d" (upper_32));
diff --git a/src/vma/dev/net_device_val.cpp b/src/vma/dev/net_device_val.cpp
index 0e48a9e4..989e4539 100644
--- a/src/vma/dev/net_device_val.cpp
+++ b/src/vma/dev/net_device_val.cpp
@@ -962,7 +962,7 @@ void net_device_val::update_netvsc_slaves(int if_index, int if_flags)
std::string net_device_val::to_str()
{
- return std::string("Net Device: " + m_name);
+ return std::string("Net Device: ") + m_name;
}
ring* net_device_val::reserve_ring(resource_allocation_key *key)
@@ -1414,7 +1414,7 @@ void net_device_val_eth::create_br_address(const char* ifname)
}
std::string net_device_val_eth::to_str()
{
- return std::string("ETH: " + net_device_val::to_str());
+ return std::string("ETH: ") + net_device_val::to_str();
}
net_device_val_ib::~net_device_val_ib()
@@ -1512,7 +1512,7 @@ void net_device_val_ib::create_br_address(const char* ifname)
std::string net_device_val_ib::to_str()
{
- return std::string("IB: " + net_device_val::to_str());
+ return std::string("IB: ") + net_device_val::to_str();
}
diff --git a/src/vma/sock/cleanable_obj.h b/src/vma/sock/cleanable_obj.h
index 34801712..ea38f24b 100644
--- a/src/vma/sock/cleanable_obj.h
+++ b/src/vma/sock/cleanable_obj.h
@@ -44,7 +44,14 @@ public:
virtual ~cleanable_obj(){};
- virtual void clean_obj(){ set_cleaned(); delete this; };
+ /* This function should be used just for objects that
+ * was allocated via new() (not by new[], nor by placement new, nor a local object on the stack,
+ * nor a namespace-scope / global, nor a member of another object; but by plain ordinary new)
+ */
+ virtual void clean_obj(){
+ set_cleaned();
+ delete this;
+ };
bool is_cleaned(){ return m_b_cleaned; };
diff --git a/src/vma/util/utils.cpp b/src/vma/util/utils.cpp
index 5c0fe3e9..a4c3ce66 100644
--- a/src/vma/util/utils.cpp
+++ b/src/vma/util/utils.cpp
@@ -235,7 +235,7 @@ unsigned short compute_ip_checksum(const unsigned short *buf, unsigned int nshor
* */
unsigned short compute_tcp_checksum(const struct iphdr *p_iphdr, const uint16_t *p_ip_payload)
{
- register unsigned long sum = 0;
+ unsigned long sum = 0;
uint16_t tcpLen = ntohs(p_iphdr->tot_len) - (p_iphdr->ihl<<2); // shift left 2 will multiply by 4 for converting to octets
//add the pseudo header
@@ -277,7 +277,7 @@ unsigned short compute_tcp_checksum(const struct iphdr *p_iphdr, const uint16_t
*/
unsigned short compute_udp_checksum_rx(const struct iphdr *p_iphdr, const struct udphdr *udphdrp, mem_buf_desc_t* p_rx_wc_buf_desc)
{
- register unsigned long sum = 0;
+ unsigned long sum = 0;
unsigned short udp_len = htons(udphdrp->len);
const uint16_t *p_ip_payload = (const uint16_t *) udphdrp;
mem_buf_desc_t *p_ip_frag = p_rx_wc_buf_desc;
--
2.18.1

View File

@ -1,17 +1,14 @@
%{!?configure_options: %global configure_options %{nil}}
Name: libvma
Version: 9.2.2
Release: 3%{?dist}
Version: 9.3.1
Release: 1%{?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: 0002-Update-systemctl-files.patch
Patch1: 0003-Remove-30-libvma-limits.patch
Patch2: 0004-Use-vmad-for-systemd.patch
Patch3: 0005-Fix-issues-for-gcc-11.patch
Patch0: 0001-Fix-fc35-issues.patch
# libvma currently supports only the following architectures
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
@ -84,9 +81,8 @@ install -D -m 644 contrib/scripts/vma.service $RPM_BUILD_ROOT/%{_prefix}/lib/sys
%files
%{_libdir}/%{name}.so*
%dir %{_pkgdocdir}
%doc %{_pkgdocdir}/README.txt
%doc %{_pkgdocdir}/journal.txt
%doc %{_pkgdocdir}/VMA_VERSION
%doc %{_pkgdocdir}/README
%doc %{_pkgdocdir}/CHANGES
%config(noreplace) %{_sysconfdir}/libvma.conf
%{_sbindir}/vmad
%{_prefix}/lib/systemd/system/vma.service
@ -103,6 +99,9 @@ install -D -m 644 contrib/scripts/vma.service $RPM_BUILD_ROOT/%{_prefix}/lib/sys
%{_mandir}/man8/vma_stats.*
%changelog
* Thu Jun 17 2021 Igor Ivanov <igori@nvidia.com> 9.3.1-1
- Bump version to 9.3.1
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 9.2.2-3
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.

View File

@ -1 +1 @@
SHA512 (libvma-9.2.2.tar.gz) = 5a8a41442479107c8242938dad69ba86517823753ad6f0ed874b13e6c628f1536dc7e3de40d1244c0c06e3dbd025e619557488957681093b291de9c6fabb4a91
SHA512 (libvma-9.3.1.tar.gz) = 6829acf9759ebdfbe2bfe0607761c1817abcab9e36e942709f532b6769d24c94e8c16cba2b9ccf200eef613b6d20dce2fcd914c509f1cc7662283118ceb5d0ec