From 643404b9914889af6b4eea514cc0c4fa71603dcee4a97414df3ff962f41e260c Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Mon, 27 Sep 2021 09:00:18 +0000 Subject: [PATCH] Accepting request 921702 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.11.1 (jsc#SLE-19260) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API OBS-URL: https://build.opensuse.org/request/show/921702 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=46 --- openucx-s390x-support.patch | 97 ++++++++++++++++++------------------- openucx.changes | 67 +++++++++++++++++++++++++ openucx.spec | 6 ++- ucx-1.11.1.tar.gz | 3 ++ ucx-1.9.0.tar.gz | 3 -- 5 files changed, 122 insertions(+), 54 deletions(-) create mode 100644 ucx-1.11.1.tar.gz delete mode 100644 ucx-1.9.0.tar.gz diff --git a/openucx-s390x-support.patch b/openucx-s390x-support.patch index e132404..fa7f7ed 100644 --- a/openucx-s390x-support.patch +++ b/openucx-s390x-support.patch @@ -1,4 +1,4 @@ -commit b47dad27703f0b59072f5a8d8fba99c1d173f8f0 +commit 71d28736870f46080b8187bf2ba64920c87dc7e4 Author: Nicolas Morey-Chaisemartin Date: Thu Aug 9 07:41:24 2018 +0200 @@ -7,10 +7,10 @@ Date: Thu Aug 9 07:41:24 2018 +0200 Signed-off-by: Nicolas Morey-Chaisemartin diff --git config/m4/ucm.m4 config/m4/ucm.m4 -index 9c7c820d9fff..8297fc7e6ec2 100644 +index 1e229edc51f2..3f74fca02976 100644 --- config/m4/ucm.m4 +++ config/m4/ucm.m4 -@@ -86,9 +86,20 @@ AC_CHECK_DECLS([SYS_ipc], +@@ -73,9 +73,20 @@ AC_CHECK_DECLS([SYS_ipc], [ipc_hooks_happy=no], [#include ]) @@ -33,22 +33,24 @@ index 9c7c820d9fff..8297fc7e6ec2 100644 AS_IF([test "x$bistro_hooks_happy" = "xyes"], [AC_DEFINE([UCM_BISTRO_HOOKS], [1], [Enable BISTRO hooks])], diff --git src/tools/info/sys_info.c src/tools/info/sys_info.c -index 88d317670462..04d2c223b970 100644 +index 7c355a264c2b..52efadec096c 100644 --- src/tools/info/sys_info.c +++ src/tools/info/sys_info.c -@@ -38,6 +38,7 @@ static const char* cpu_vendor_names[] = { - [UCS_CPU_VENDOR_AMD] = "AMD", +@@ -44,7 +44,8 @@ static const char* cpu_vendor_names[] = { [UCS_CPU_VENDOR_GENERIC_ARM] = "Generic ARM", [UCS_CPU_VENDOR_GENERIC_PPC] = "Generic PPC", -+ [UCS_CPU_VENDOR_GENERIC_IBM] = "Generic IBM", - [UCS_CPU_VENDOR_FUJITSU_ARM] = "Fujitsu ARM" + [UCS_CPU_VENDOR_FUJITSU_ARM] = "Fujitsu ARM", +- [UCS_CPU_VENDOR_ZHAOXIN] = "Zhaoxin" ++ [UCS_CPU_VENDOR_ZHAOXIN] = "Zhaoxin", ++ [UCS_CPU_VENDOR_GENERIC_IBM] = "Generic IBM" }; + static double measure_memcpy_bandwidth(size_t size) diff --git src/ucm/Makefile.am src/ucm/Makefile.am -index e53a30a46916..21bce848045d 100644 +index 55784d0c31f4..a6003eda0333 100644 --- src/ucm/Makefile.am +++ src/ucm/Makefile.am -@@ -30,7 +30,8 @@ noinst_HEADERS = \ +@@ -31,7 +31,8 @@ noinst_HEADERS = \ bistro/bistro.h \ bistro/bistro_x86_64.h \ bistro/bistro_aarch64.h \ @@ -59,7 +61,7 @@ index e53a30a46916..21bce848045d 100644 libucm_la_SOURCES = \ event/event.c \ diff --git src/ucm/bistro/bistro.h src/ucm/bistro/bistro.h -index 16e988700c35..b4c2762fb5b2 100644 +index 101000455e66..0ae947429796 100644 --- src/ucm/bistro/bistro.h +++ src/ucm/bistro/bistro.h @@ -20,6 +20,8 @@ typedef struct ucm_bistro_restore_point ucm_bistro_restore_point_t; @@ -73,10 +75,10 @@ index 16e988700c35..b4c2762fb5b2 100644 #endif diff --git src/ucm/bistro/bistro_s390x.h src/ucm/bistro/bistro_s390x.h new file mode 100644 -index 000000000000..334c0474e8b6 +index 000000000000..c0f427f4984a --- /dev/null +++ src/ucm/bistro/bistro_s390x.h -@@ -0,0 +1,13 @@ +@@ -0,0 +1,18 @@ +#ifndef UCM_BISTRO_BISTRO_S390X_H_ +#define UCM_BISTRO_BISTRO_S390X_H_ + @@ -88,46 +90,41 @@ index 000000000000..334c0474e8b6 +#define UCM_BISTRO_PROLOGUE +#define UCM_BISTRO_EPILOGUE + ++static inline ucs_status_t ucm_bistro_patch(void *func_ptr, void *hook, const char *symbol, ++ void **orig_func_p, ++ ucm_bistro_restore_point_t **rp){ ++ return UCS_ERR_UNSUPPORTED; ++} + +#endif -diff --git src/ucm/mmap/install.c src/ucm/mmap/install.c -index 6b46baaeecfa..522fd6eaa89f 100644 ---- src/ucm/mmap/install.c -+++ src/ucm/mmap/install.c -@@ -331,7 +331,11 @@ static ucs_status_t ucs_mmap_install_reloc(int events) - status = ucm_reloc_modify(&entry->patch); - } else { - ucs_assert(ucm_mmap_hook_mode() == UCM_MMAP_HOOK_BISTRO); -+#if UCM_BISTRO_HOOKS - status = ucm_bistro_patch(entry->patch.symbol, entry->patch.value, NULL); -+#else -+ status = UCS_ERR_UNSUPPORTED; -+#endif - } - if (status != UCS_OK) { - ucm_warn("failed to install %s hook for '%s'", diff --git src/ucs/Makefile.am src/ucs/Makefile.am -index b612ddeb54ff..6d01521b697b 100644 +index 8cc77e87da3f..2fbb53188a58 100644 --- src/ucs/Makefile.am +++ src/ucs/Makefile.am -@@ -64,6 +64,7 @@ nobase_dist_libucs_la_HEADERS = \ - arch/x86_64/global_opts.h \ +@@ -21,6 +21,7 @@ libucs_la_LIBADD = $(LIBM) $(top_builddir)/src/ucm/libucm.la + nobase_dist_libucs_la_HEADERS = \ + arch/aarch64/bitops.h \ + arch/ppc64/bitops.h \ ++ arch/s390x/bitops.h \ + arch/x86_64/bitops.h \ + arch/bitops.h \ + algorithm/crc.h \ +@@ -77,12 +78,14 @@ nobase_dist_libucs_la_HEADERS = \ arch/aarch64/global_opts.h \ + arch/generic/atomic.h \ arch/ppc64/global_opts.h \ + arch/s390x/global_opts.h \ arch/global_opts.h noinst_HEADERS = \ -@@ -71,6 +72,8 @@ noinst_HEADERS = \ - arch/generic/atomic.h \ + arch/aarch64/cpu.h \ arch/generic/cpu.h \ arch/ppc64/cpu.h \ -+ arch/s390x/bitops.h \ + arch/s390x/cpu.h \ - arch/x86_64/atomic.h \ arch/x86_64/cpu.h \ - arch/atomic.h \ -@@ -112,6 +115,7 @@ libucs_la_SOURCES = \ + arch/cpu.h \ + datastruct/arbiter.h \ +@@ -127,6 +130,7 @@ libucs_la_SOURCES = \ algorithm/qsort_r.c \ arch/aarch64/cpu.c \ arch/aarch64/global_opts.c \ @@ -136,7 +133,7 @@ index b612ddeb54ff..6d01521b697b 100644 arch/ppc64/global_opts.c \ arch/x86_64/cpu.c \ diff --git src/ucs/arch/atomic.h src/ucs/arch/atomic.h -index 99e53ca5d0f7..dfa83b757bb0 100644 +index 6a8551f592e1..e3a9f4641383 100644 --- src/ucs/arch/atomic.h +++ src/ucs/arch/atomic.h @@ -15,6 +15,8 @@ @@ -149,10 +146,10 @@ index 99e53ca5d0f7..dfa83b757bb0 100644 # error "Unsupported architecture" #endif diff --git src/ucs/arch/bitops.h src/ucs/arch/bitops.h -index 10a86b53ca42..80084eea6260 100644 +index a890cd255295..badc12419b5b 100644 --- src/ucs/arch/bitops.h +++ src/ucs/arch/bitops.h -@@ -18,6 +18,8 @@ BEGIN_C_DECLS +@@ -20,6 +20,8 @@ BEGIN_C_DECLS # include "ppc64/bitops.h" #elif defined(__aarch64__) # include "aarch64/bitops.h" @@ -162,10 +159,10 @@ index 10a86b53ca42..80084eea6260 100644 # error "Unsupported architecture" #endif diff --git src/ucs/arch/cpu.c src/ucs/arch/cpu.c -index 6d9ebbafeaed..5cda2179efca 100644 +index 210a49c8e717..4018392ebed3 100644 --- src/ucs/arch/cpu.c +++ src/ucs/arch/cpu.c -@@ -60,6 +60,10 @@ const ucs_cpu_builtin_memcpy_t ucs_cpu_builtin_memcpy[UCS_CPU_VENDOR_LAST] = { +@@ -61,6 +61,10 @@ const ucs_cpu_builtin_memcpy_t ucs_cpu_builtin_memcpy[UCS_CPU_VENDOR_LAST] = { .min = UCS_MEMUNITS_INF, .max = UCS_MEMUNITS_INF }, @@ -176,7 +173,7 @@ index 6d9ebbafeaed..5cda2179efca 100644 [UCS_CPU_VENDOR_FUJITSU_ARM] = { .min = UCS_MEMUNITS_INF, .max = UCS_MEMUNITS_INF -@@ -72,6 +76,7 @@ const size_t ucs_cpu_est_bcopy_bw[UCS_CPU_VENDOR_LAST] = { +@@ -77,6 +81,7 @@ const size_t ucs_cpu_est_bcopy_bw[UCS_CPU_VENDOR_LAST] = { [UCS_CPU_VENDOR_AMD] = 5008 * UCS_MBYTE, [UCS_CPU_VENDOR_GENERIC_ARM] = 5800 * UCS_MBYTE, [UCS_CPU_VENDOR_GENERIC_PPC] = 5800 * UCS_MBYTE, @@ -185,18 +182,18 @@ index 6d9ebbafeaed..5cda2179efca 100644 }; diff --git src/ucs/arch/cpu.h src/ucs/arch/cpu.h -index cb317a8db3a4..5174eeb7e1db 100644 +index e06f6b95ebb1..15f3198976a9 100644 --- src/ucs/arch/cpu.h +++ src/ucs/arch/cpu.h -@@ -58,6 +58,7 @@ typedef enum ucs_cpu_vendor { +@@ -62,6 +62,7 @@ typedef enum ucs_cpu_vendor { UCS_CPU_VENDOR_AMD, UCS_CPU_VENDOR_GENERIC_ARM, UCS_CPU_VENDOR_GENERIC_PPC, + UCS_CPU_VENDOR_GENERIC_IBM, UCS_CPU_VENDOR_FUJITSU_ARM, + UCS_CPU_VENDOR_ZHAOXIN, UCS_CPU_VENDOR_LAST - } ucs_cpu_vendor_t; -@@ -92,6 +93,8 @@ typedef struct ucs_cpu_builtin_memcpy { +@@ -97,6 +98,8 @@ typedef struct ucs_cpu_builtin_memcpy { # include "ppc64/cpu.h" #elif defined(__aarch64__) # include "aarch64/cpu.h" @@ -408,10 +405,10 @@ index 000000000000..225e4e5e896a +#endif + diff --git src/ucs/sys/sys.c src/ucs/sys/sys.c -index 62e555b409d1..8adc26241781 100644 +index 59836aaa51c2..3975db7f6be3 100644 --- src/ucs/sys/sys.c +++ src/ucs/sys/sys.c -@@ -1134,8 +1134,19 @@ void *ucs_sys_realloc(void *old_ptr, size_t old_length, size_t new_length) +@@ -1223,8 +1223,19 @@ void *ucs_sys_realloc(void *old_ptr, size_t old_length, size_t new_length) if (old_ptr == NULL) { /* Note: Must pass the 0 offset as "long", otherwise it will be * partially undefined when converted to syscall arguments */ diff --git a/openucx.changes b/openucx.changes index fe40666..4e21d0b 100644 --- a/openucx.changes +++ b/openucx.changes @@ -1,7 +1,74 @@ +------------------------------------------------------------------- +Thu Sep 23 07:35:57 UTC 2021 - Nicolas Morey-Chaisemartin + +- Update to v1.11.1 (jsc#SLE-19260) + ------------------------------------------------------------------- Wed Feb 24 16:34:54 UTC 2021 - Nicolas Morey-Chaisemartin - Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691) + - Core: + - Added support for UCX monitoring using virtual file system (VFS)/FUSE + - Added support for applications with static CUDA runtime linking + - Added support for a configuration file + - Updated clang format configuration + - UCP + - Added rendezvous API for active messages + - Added user-defined name to context, worker, and endpoint objects + - Added flag to silence request leak check + - Added API for endpoint performance evaluation + - Added API - ucp_request_query + - Added API - ucp_lib_query + - Added bandwidth optimizations for new protocols multi-lane + - Added support for multi-rail over lanes with BW ratio >= 1/4 + - Added support for tracking outstanding requests and aborting those in case of connection failure + - Refactored keep-alive protocol + - Added device id to wireup protocol + - Added support up to 128 transport layer resources in UCP context + - Added support CUDA memory allocations with ucp_mem_map + - Increased UCP_WORKER_MAX_EP_CONFIG to 64 + - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set + - Refactored wireup protocols, rendezvous, get, zcopy protocols + - Added put zcopy multi-rail + - Improved logging for new protocols + - Added system topology information + - Added new protocols for eager offload protocols + - UCT + - Extended connection establishment API + - Added active message AM alignment in iface params + - Added active message short IOV API. + - Added support for interface query by operation and memory type + - Added API to get allocation base address and length + - Added md_dereg_v2 API + - UCS + - Added log filter by source file name. + - Added checking for last element in fraglist queue + - Added a method to get IP address from sockaddr. + - Added memory usage limits to registration cache + - RDMA CORE (IB, ROCE, etc.) + - Added report of QP info in case of completion with error + - Refactored of FC send operations + - Added support for DevX unique QPN allocation + - Optimized endpoint lookup for DCI + - Added support for RDMA sub-function (SF) + - Added support for DCI via DEVX + - Added DCI pool per LAG port + - Added support for RoCE IP reachability check using a subnet mask + - Added active message short IOV for UD/DC/RC mlx, UD/RC verbs + - Added endpoint keep alive check for UD + - Suppressed warning if device can't be opened + - Added support for multiple flush cancel without completion + - Added ignore for devices with invalid GID + - Added support for SRQ linked list reordering + - Added flush by flow control on old devices + - Added support for configurable rdma_resolve_addr/route timeout + - Shared memory + - Added active message short IOV support for posix, sysv, and self transports + - TCP + - Added support for peer failure in case of CONNECT_TO_EP + - Added support for active message short IOV + - See NEWS for a complete changelog and bug fixes +- Refresh openucx-s390x-support against latest sources ------------------------------------------------------------------- Mon Oct 5 13:21:34 UTC 2020 - Nicolas Morey-Chaisemartin diff --git a/openucx.spec b/openucx.spec index 5734bd5..fabf416 100644 --- a/openucx.spec +++ b/openucx.spec @@ -17,7 +17,7 @@ Name: openucx -Version: 1.9.0 +Version: 1.11.1 Release: 0 Summary: Communication layer for Message Passing (MPI) License: BSD-3-Clause @@ -174,11 +174,15 @@ rm -fv "%buildroot/%_libdir"/*.la rm -fv "%buildroot/%_libdir"/ucx/*.la # Rename example dir for consistency with the package name mv %buildroot/%_datadir/ucx %buildroot/%_datadir/openucx +# io_demo should not be in %{bindir} and more likely in %{libexec} +mkdir -p %buildroot/%_libexecdir/%{name}/ +mv %buildroot/%_bindir/io_demo %buildroot/%_libexecdir/%{name}/ %files tools %defattr(-,root,root) %_bindir/ucx_* %_datadir/%{name}/ +%_libexecdir/%{name} %_libdir/pkgconfig/ucx.pc %doc LICENSE NEWS diff --git a/ucx-1.11.1.tar.gz b/ucx-1.11.1.tar.gz new file mode 100644 index 0000000..a8cfdb2 --- /dev/null +++ b/ucx-1.11.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29338cad18858517f96b46ff83bdd259a5899e274792cebd269717c660aa86fd +size 2746949 diff --git a/ucx-1.9.0.tar.gz b/ucx-1.9.0.tar.gz deleted file mode 100644 index cd319d9..0000000 --- a/ucx-1.9.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7a2c8841dc0d5444088a4373dc9b9cc68dbffcd917c1eba92ca8ed8e5e635fb -size 2467338