Update to 9.8.1
This commit is contained in:
parent
6a21b581bc
commit
d55e2df086
@ -1,24 +0,0 @@
|
||||
From 4c7049e373908e3486b64cd54522c05b3dd60ef2 Mon Sep 17 00:00:00 2001
|
||||
From: maminjie <maminjie1@huawei.com>
|
||||
Date: Wed, 10 Mar 2021 09:38:51 +0800
|
||||
Subject: [PATCH] Remove ExecReload that is not supported
|
||||
|
||||
---
|
||||
contrib/scripts/vma.service.in | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/contrib/scripts/vma.service.in b/contrib/scripts/vma.service.in
|
||||
index e268173..7ff50a5 100644
|
||||
--- a/contrib/scripts/vma.service.in
|
||||
+++ b/contrib/scripts/vma.service.in
|
||||
@@ -8,7 +8,6 @@ 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.23.0
|
||||
|
||||
BIN
8.9.4.tar.gz
BIN
8.9.4.tar.gz
Binary file not shown.
BIN
9.8.1.tar.gz
Normal file
BIN
9.8.1.tar.gz
Normal file
Binary file not shown.
@ -1,216 +0,0 @@
|
||||
From 1858b6fc989db967376a5a0c761623582b99080b Mon Sep 17 00:00:00 2001
|
||||
From: Igor Ivanov <igor.ivanov.va@gmail.com>
|
||||
Date: Fri, 11 Oct 2019 17:15:01 +0300
|
||||
Subject: [PATCH] issue: 1909532 Resolve gcc 9.x issues
|
||||
|
||||
gcc 9.x enables [-Werror=address-of-packed-member] verification.
|
||||
So it produced taking address of packed member of <struct name>
|
||||
may result in an unaligned pointer value.
|
||||
|
||||
Signed-off-by: Igor Ivanov <igor.ivanov.va@gmail.com>
|
||||
---
|
||||
src/vma/dev/cq_mgr.inl | 8 ++++----
|
||||
src/vma/dev/rfs.h | 22 +++++++++++-----------
|
||||
src/vma/dev/ring_slave.cpp | 10 +++++-----
|
||||
src/vma/ib/base/verbs_extra.cpp | 4 ++--
|
||||
src/vma/proto/header.h | 4 ++--
|
||||
src/vma/proto/igmp_handler.h | 2 +-
|
||||
6 files changed, 25 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/src/vma/dev/cq_mgr.inl b/src/vma/dev/cq_mgr.inl
|
||||
index 8739ff686..7b5564e89 100644
|
||||
--- a/src/vma/dev/cq_mgr.inl
|
||||
+++ b/src/vma/dev/cq_mgr.inl
|
||||
@@ -72,17 +72,17 @@ inline uint32_t cq_mgr::process_recv_queue(void* pv_fd_ready_array)
|
||||
inline bool is_eth_tcp_frame(mem_buf_desc_t* buff)
|
||||
{
|
||||
struct ethhdr* p_eth_h = (struct ethhdr*)(buff->p_buffer);
|
||||
- uint16_t* p_h_proto = &p_eth_h->h_proto;
|
||||
+ uint16_t h_proto = p_eth_h->h_proto;
|
||||
|
||||
size_t transport_header_len = ETH_HDR_LEN;
|
||||
struct vlanhdr* p_vlan_hdr = NULL;
|
||||
- if (*p_h_proto == htons(ETH_P_8021Q)) {
|
||||
+ if (h_proto == htons(ETH_P_8021Q)) {
|
||||
p_vlan_hdr = (struct vlanhdr*)((uint8_t*)p_eth_h + transport_header_len);
|
||||
transport_header_len = ETH_VLAN_HDR_LEN;
|
||||
- p_h_proto = &p_vlan_hdr->h_vlan_encapsulated_proto;
|
||||
+ h_proto = p_vlan_hdr->h_vlan_encapsulated_proto;
|
||||
}
|
||||
struct iphdr *p_ip_h = (struct iphdr*)(buff->p_buffer + transport_header_len);
|
||||
- if (likely(*p_h_proto == htons(ETH_P_IP)) && (p_ip_h->protocol == IPPROTO_TCP)) {
|
||||
+ if (likely(h_proto == htons(ETH_P_IP)) && (p_ip_h->protocol == IPPROTO_TCP)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
diff --git a/src/vma/dev/rfs.h b/src/vma/dev/rfs.h
|
||||
index 30edec455..bd0a84c33 100644
|
||||
--- a/src/vma/dev/rfs.h
|
||||
+++ b/src/vma/dev/rfs.h
|
||||
@@ -58,10 +58,10 @@ class pkt_rcvr_sink;
|
||||
|
||||
/* ETHERNET
|
||||
*/
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_eth_ipv4_tcp_udp_t {
|
||||
+typedef struct attach_flow_data_eth_ipv4_tcp_udp_t {
|
||||
struct ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
- struct __attribute__ ((packed)) ibv_flow_attr_eth_ipv4_tcp_udp {
|
||||
+ struct ibv_flow_attr_eth_ipv4_tcp_udp {
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_eth eth;
|
||||
vma_ibv_flow_spec_ipv4 ipv4;
|
||||
@@ -89,10 +89,10 @@ typedef struct __attribute__ ((packed)) attach_flow_data_eth_ipv4_tcp_udp_t {
|
||||
|
||||
/* IPOIB (MC)
|
||||
*/
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_ib_v2_t {
|
||||
+typedef struct attach_flow_data_ib_v2_t {
|
||||
struct ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
- struct __attribute__ ((packed)) ibv_flow_attr_ib_v2 {
|
||||
+ struct ibv_flow_attr_ib_v2 {
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_ipv4 ipv4;
|
||||
vma_ibv_flow_spec_tcp_udp tcp_udp;
|
||||
@@ -114,10 +114,10 @@ typedef struct __attribute__ ((packed)) attach_flow_data_ib_v2_t {
|
||||
} attach_flow_data_ib_v2_t;
|
||||
|
||||
#ifdef DEFINED_IBV_FLOW_SPEC_IB
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_ib_v1_t {
|
||||
+typedef struct attach_flow_data_ib_v1_t {
|
||||
struct ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
- struct __attribute__ ((packed)) ibv_flow_attr_ib_v1 {
|
||||
+ struct ibv_flow_attr_ib_v1 {
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_ib ib;
|
||||
|
||||
@@ -140,10 +140,10 @@ typedef struct __attribute__ ((packed)) attach_flow_data_ib_v1_t {
|
||||
|
||||
/* IPOIB (UC)
|
||||
*/
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_ib_ipv4_tcp_udp_v2_t {
|
||||
+typedef struct attach_flow_data_ib_ipv4_tcp_udp_v2_t {
|
||||
struct ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
- struct __attribute__ ((packed)) ibv_flow_attr_ib_ipv4_tcp_udp_v2 {
|
||||
+ struct ibv_flow_attr_ib_ipv4_tcp_udp_v2 {
|
||||
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_ipv4 ipv4;
|
||||
@@ -165,10 +165,10 @@ typedef struct __attribute__ ((packed)) attach_flow_data_ib_ipv4_tcp_udp_v2_t {
|
||||
} attach_flow_data_ib_ipv4_tcp_udp_v2_t;
|
||||
|
||||
#ifdef DEFINED_IBV_FLOW_SPEC_IB
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_ib_ipv4_tcp_udp_v1_t {
|
||||
+typedef struct attach_flow_data_ib_ipv4_tcp_udp_v1_t {
|
||||
struct ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
- struct __attribute__ ((packed)) ibv_flow_attr_ib_ipv4_tcp_udp_v1 {
|
||||
+ struct ibv_flow_attr_ib_ipv4_tcp_udp_v1 {
|
||||
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_ib ib;
|
||||
@@ -191,7 +191,7 @@ typedef struct __attribute__ ((packed)) attach_flow_data_ib_ipv4_tcp_udp_v1_t {
|
||||
} attach_flow_data_ib_ipv4_tcp_udp_v1_t;
|
||||
#endif /* DEFINED_IBV_FLOW_SPEC_IB */
|
||||
|
||||
-typedef struct __attribute__ ((packed)) attach_flow_data_t {
|
||||
+typedef struct attach_flow_data_t {
|
||||
vma_ibv_flow * ibv_flow;
|
||||
qp_mgr* p_qp_mgr;
|
||||
vma_ibv_flow_attr ibv_flow_attr;
|
||||
diff --git a/src/vma/dev/ring_slave.cpp b/src/vma/dev/ring_slave.cpp
|
||||
index 7d7f0375b..c691eafb1 100644
|
||||
--- a/src/vma/dev/ring_slave.cpp
|
||||
+++ b/src/vma/dev/ring_slave.cpp
|
||||
@@ -630,20 +630,20 @@ bool ring_slave::rx_process_buffer(mem_buf_desc_t* p_rx_wc_buf_desc, void* pv_fd
|
||||
// printf("\n");
|
||||
// }
|
||||
|
||||
- uint16_t* p_h_proto = &p_eth_h->h_proto;
|
||||
+ uint16_t h_proto = p_eth_h->h_proto;
|
||||
|
||||
ring_logfunc("Rx buffer Ethernet dst=" ETH_HW_ADDR_PRINT_FMT " <- src=" ETH_HW_ADDR_PRINT_FMT " type=%#x",
|
||||
ETH_HW_ADDR_PRINT_ADDR(p_eth_h->h_dest),
|
||||
ETH_HW_ADDR_PRINT_ADDR(p_eth_h->h_source),
|
||||
- htons(*p_h_proto));
|
||||
+ htons(h_proto));
|
||||
|
||||
// Handle VLAN header as next protocol
|
||||
struct vlanhdr* p_vlan_hdr = NULL;
|
||||
uint16_t packet_vlan = 0;
|
||||
- if (*p_h_proto == htons(ETH_P_8021Q)) {
|
||||
+ if (h_proto == htons(ETH_P_8021Q)) {
|
||||
p_vlan_hdr = (struct vlanhdr*)((uint8_t*)p_eth_h + ETH_HDR_LEN);
|
||||
transport_header_len = ETH_VLAN_HDR_LEN;
|
||||
- p_h_proto = &p_vlan_hdr->h_vlan_encapsulated_proto;
|
||||
+ h_proto = p_vlan_hdr->h_vlan_encapsulated_proto;
|
||||
packet_vlan = (htons(p_vlan_hdr->h_vlan_TCI) & VLAN_VID_MASK);
|
||||
} else {
|
||||
transport_header_len = ETH_HDR_LEN;
|
||||
@@ -656,7 +656,7 @@ bool ring_slave::rx_process_buffer(mem_buf_desc_t* p_rx_wc_buf_desc, void* pv_fd
|
||||
}
|
||||
|
||||
// Validate IP header as next protocol
|
||||
- if (unlikely(*p_h_proto != htons(ETH_P_IP))) {
|
||||
+ if (unlikely(h_proto != htons(ETH_P_IP))) {
|
||||
ring_logwarn("Rx buffer dropped - Invalid Ethr Type (%#x : %#x)", p_eth_h->h_proto, htons(ETH_P_IP));
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/vma/ib/base/verbs_extra.cpp b/src/vma/ib/base/verbs_extra.cpp
|
||||
index 8b7a062ca..5f9b34c90 100644
|
||||
--- a/src/vma/ib/base/verbs_extra.cpp
|
||||
+++ b/src/vma/ib/base/verbs_extra.cpp
|
||||
@@ -299,7 +299,7 @@ int priv_ibv_query_flow_tag_supported(struct ibv_qp *qp, uint8_t port_num)
|
||||
#ifdef DEFINED_IBV_FLOW_TAG
|
||||
|
||||
// Create
|
||||
- struct __attribute__ ((packed)) {
|
||||
+ struct {
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_eth eth;
|
||||
vma_ibv_flow_spec_ipv4 ipv4;
|
||||
@@ -342,7 +342,7 @@ int priv_ibv_create_flow_supported(struct ibv_qp *qp, uint8_t port_num)
|
||||
{
|
||||
int res = -1;
|
||||
|
||||
- struct __attribute__ ((packed)) {
|
||||
+ struct {
|
||||
vma_ibv_flow_attr attr;
|
||||
vma_ibv_flow_spec_ipv4 ipv4;
|
||||
vma_ibv_flow_spec_tcp_udp tcp_udp;
|
||||
diff --git a/src/vma/proto/header.h b/src/vma/proto/header.h
|
||||
index 9562ba920..e3cbb2162 100644
|
||||
--- a/src/vma/proto/header.h
|
||||
+++ b/src/vma/proto/header.h
|
||||
@@ -75,13 +75,13 @@ struct __attribute__ ((packed)) vlan_eth_hdr_template_t { // Offeset Size
|
||||
// iphdr m_ip_hdr; // 20 20 = 40
|
||||
};
|
||||
|
||||
-union __attribute__ ((packed)) l2_hdr_template_t {
|
||||
+union l2_hdr_template_t {
|
||||
ib_hdr_template_t ib_hdr;
|
||||
eth_hdr_template_t eth_hdr;
|
||||
vlan_eth_hdr_template_t vlan_eth_hdr;
|
||||
};
|
||||
|
||||
-struct __attribute__ ((packed)) tx_hdr_template_t { // Offeset Size
|
||||
+struct __attribute__ ((packed, aligned)) tx_hdr_template_t { // Offeset Size
|
||||
l2_hdr_template_t m_l2_hdr; // 0 20
|
||||
iphdr m_ip_hdr; // 20 20
|
||||
union {
|
||||
diff --git a/src/vma/proto/igmp_handler.h b/src/vma/proto/igmp_handler.h
|
||||
index fbae0b58b..1dc24c622 100644
|
||||
--- a/src/vma/proto/igmp_handler.h
|
||||
+++ b/src/vma/proto/igmp_handler.h
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
#define IGMP_TIMER_ID 0
|
||||
|
||||
-struct __attribute__ ((packed)) ip_igmp_tx_hdr_template_t {
|
||||
+struct __attribute__ ((packed, aligned)) ip_igmp_tx_hdr_template_t {
|
||||
iphdr m_ip_hdr;
|
||||
uint32_t m_ip_hdr_ext;
|
||||
igmphdr m_igmp_hdr;
|
||||
@ -1,27 +0,0 @@
|
||||
From 8796b971e58bf7c224cae800209c5eaa53cf9841 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Ivanov <igori@nvidia.com>
|
||||
Date: Thu, 17 Jun 2021 16:07:31 +0300
|
||||
Subject: [PATCH] issue: 2485156 Fix fc35 issues
|
||||
|
||||
- glibc:
|
||||
The function pthread_yield has been deprecated; programs should use
|
||||
the equivalent standard function sched_yield instead.
|
||||
|
||||
Signed-off-by: Igor Ivanov <igori@nvidia.com>
|
||||
---
|
||||
src/vma/iomux/epfd_info.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/vma/iomux/epfd_info.cpp b/src/vma/iomux/epfd_info.cpp
|
||||
index c7670c7b3..d7c6c4fcd 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);
|
||||
44
libvma.spec
44
libvma.spec
@ -1,14 +1,11 @@
|
||||
Name: libvma
|
||||
Version: 8.9.4
|
||||
Release: 13
|
||||
Version: 9.8.1
|
||||
Release: 1
|
||||
Summary: A library that boosts performance for message-based and streaming applications
|
||||
License: GPLv2 or BSD
|
||||
URL: https://github.com/Mellanox/libvma
|
||||
Source: https://github.com/Mellanox/libvma/archive/%{version}.tar.gz
|
||||
Patch0000: Resolve-gcc-9.x-issues.patch
|
||||
Patch0001: 0001-Remove-ExecReload-that-is-not-supported.patch
|
||||
Patch0002: fix-build-error-with-glibc-2.34.patch
|
||||
Patch0003: add-loongarch64-support-for-libvma.patch
|
||||
Patch0000: add-loongarch64-support-for-libvma.patch
|
||||
|
||||
ExcludeArch: %{arm}
|
||||
Requires: pam
|
||||
@ -43,23 +40,34 @@ Headers files for libvma.
|
||||
%make_build V=1
|
||||
|
||||
%install
|
||||
%make_install
|
||||
%delete_la
|
||||
%{make_install}
|
||||
|
||||
%ldconfig_scriptlets
|
||||
find $RPM_BUILD_ROOT%{_libdir} -name '*.la' -delete
|
||||
install -D -m 644 contrib/scripts/vma.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/vma.service
|
||||
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/vma
|
||||
|
||||
%post
|
||||
%systemd_post vma.service
|
||||
|
||||
%preun
|
||||
%systemd_preun vma.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart vma.service
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc README.md README.txt journal.txt VMA_VERSION.in
|
||||
%license COPYING LICENSE
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%config(noreplace) %{_sysconfdir}/libvma.conf
|
||||
%config(noreplace) %{_sysconfdir}/security/limits.d/30-libvma-limits.conf
|
||||
%{_bindir}/vma_stats
|
||||
%{_libdir}/%{name}.so
|
||||
%{_libdir}/%{name}*.so.*
|
||||
%{_sbindir}/vmad
|
||||
%{_sbindir}/vma
|
||||
%{_unitdir}/vma.service
|
||||
%{_mandir}/man7/vma.*
|
||||
%{_mandir}/man8/vmad.*
|
||||
%{_mandir}/man8/vma_stats.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
@ -67,11 +75,15 @@ Headers files for libvma.
|
||||
|
||||
%files help
|
||||
%defattr(-,root,root)
|
||||
%{_pkgdocdir}/README.txt
|
||||
%{_pkgdocdir}/journal.txt
|
||||
%{_pkgdocdir}/VMA_VERSION
|
||||
%{_pkgdocdir}/README.md
|
||||
%{_pkgdocdir}/README
|
||||
%{_pkgdocdir}/CHANGES
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Jul 15 2023 wulei <wu_lei@hoperun.com> - 9.8.1-1
|
||||
- Update to 9.8.1
|
||||
|
||||
* Mon Feb 6 2023 Wenlong Zhang <zhangwenlong@loongson.cn> - 8.9.4-13
|
||||
- add loongarch64 support for libvma
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user