diff --git a/0001-Remove-ExecReload-that-is-not-supported.patch b/0001-Remove-ExecReload-that-is-not-supported.patch deleted file mode 100644 index fa2522eccb8563b0be52dc96c662919ee6df8f18..0000000000000000000000000000000000000000 --- a/0001-Remove-ExecReload-that-is-not-supported.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 4c7049e373908e3486b64cd54522c05b3dd60ef2 Mon Sep 17 00:00:00 2001 -From: maminjie -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 - diff --git a/8.9.4.tar.gz b/8.9.4.tar.gz deleted file mode 100644 index 008acf2592217ea99d1e38d98204b9470df2065b..0000000000000000000000000000000000000000 Binary files a/8.9.4.tar.gz and /dev/null differ diff --git a/9.8.1.tar.gz b/9.8.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..85ebd9828fd7577fd55173ed33aef57969696f8a Binary files /dev/null and b/9.8.1.tar.gz differ diff --git a/Resolve-gcc-9.x-issues.patch b/Resolve-gcc-9.x-issues.patch deleted file mode 100644 index 7236c29dea466d1e94398fd14ee115b37f233227..0000000000000000000000000000000000000000 --- a/Resolve-gcc-9.x-issues.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 1858b6fc989db967376a5a0c761623582b99080b Mon Sep 17 00:00:00 2001 -From: Igor Ivanov -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 -may result in an unaligned pointer value. - -Signed-off-by: Igor Ivanov ---- - 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; diff --git a/fix-build-error-with-glibc-2.34.patch b/fix-build-error-with-glibc-2.34.patch deleted file mode 100644 index 5643f4053b7b647248a2e3b0faba45fe41bb77eb..0000000000000000000000000000000000000000 --- a/fix-build-error-with-glibc-2.34.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 8796b971e58bf7c224cae800209c5eaa53cf9841 Mon Sep 17 00:00:00 2001 -From: Igor Ivanov -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 ---- - 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); diff --git a/libvma.spec b/libvma.spec index fc72c19270b9603ef90c3299fead11aed740d2bb..d740443e9525642244feb71b992bba45d47c3854 100644 --- a/libvma.spec +++ b/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 - 9.8.1-1 +- Update to 9.8.1 + * Mon Feb 6 2023 Wenlong Zhang - 8.9.4-13 - add loongarch64 support for libvma