Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libfabric for openSUSE:Factory checked in at 2022-10-18 12:44:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libfabric (Old) and /work/SRC/openSUSE:Factory/.libfabric.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfabric" Tue Oct 18 12:44:22 2022 rev:36 rq:1012024 version:1.16.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libfabric/fabtests.changes 2022-10-10 18:43:35.586743458 +0200 +++ /work/SRC/openSUSE:Factory/.libfabric.new.2275/fabtests.changes 2022-10-18 12:44:32.297660681 +0200 @@ -1,0 +2,12 @@ +Mon Oct 10 06:47:42 UTC 2022 - Nicolas Morey-Chaisemartin <[email protected]> + +- Update to 1.16.1 + - Core + - Fix windows implementation to remove fd from poll set + - PSM3 + - Add missing files to release tarball + - Util + - Handle NULL address insertion to fi_av_insert +- Drop prov-rxm-Disable-128-bit-atomics.patch which was merged upstream + +------------------------------------------------------------------- libfabric.changes: same change Old: ---- libfabric-1.16.0.0.fcf62e5b494b.tar.bz2 prov-rxm-Disable-128-bit-atomics.patch New: ---- libfabric-1.16.1.0.619d9b3c4082.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fabtests.spec ++++++ --- /var/tmp/diff_new_pack.bUpCZn/_old 2022-10-18 12:44:33.069662438 +0200 +++ /var/tmp/diff_new_pack.bUpCZn/_new 2022-10-18 12:44:33.077662456 +0200 @@ -16,10 +16,10 @@ # -%define git_ver .0.fcf62e5b494b +%define git_ver .0.619d9b3c4082 Name: fabtests -Version: 1.16.0 +Version: 1.16.1 Release: 0 Summary: Test suite for libfabric API License: BSD-2-Clause OR GPL-2.0-only @@ -28,7 +28,6 @@ Source: libfabric-%{version}%{git_ver}.tar.bz2 Source1: fabtests-rpmlintrc Patch0: libfabric-libtool.patch -Patch1: prov-rxm-Disable-128-bit-atomics.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libfabric-devel = %{version} @@ -41,7 +40,6 @@ %prep %setup -q -n libfabric-%{version}%{git_ver} %patch0 -p1 -%patch1 %build cd fabtests ++++++ libfabric.spec ++++++ --- /var/tmp/diff_new_pack.bUpCZn/_old 2022-10-18 12:44:33.109662529 +0200 +++ /var/tmp/diff_new_pack.bUpCZn/_new 2022-10-18 12:44:33.113662538 +0200 @@ -17,10 +17,10 @@ # -%define git_ver .0.fcf62e5b494b +%define git_ver .0.619d9b3c4082 Name: libfabric -Version: 1.16.0 +Version: 1.16.1 Release: 0 Summary: User-space RDMA Fabric Interfaces License: BSD-2-Clause OR GPL-2.0-only @@ -28,7 +28,6 @@ Source: %{name}-%{version}%{git_ver}.tar.bz2 Source1: baselibs.conf Patch0: libfabric-libtool.patch -Patch1: prov-rxm-Disable-128-bit-atomics.patch URL: http://www.github.com/ofiwg/libfabric BuildRequires: autoconf BuildRequires: automake @@ -71,7 +70,6 @@ %prep %setup -q -n %{name}-%{version}%{git_ver} %patch0 -p1 -%patch1 %build rm -f config/libtool.m4 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bUpCZn/_old 2022-10-18 12:44:33.153662630 +0200 +++ /var/tmp/diff_new_pack.bUpCZn/_new 2022-10-18 12:44:33.157662639 +0200 @@ -8,7 +8,7 @@ <param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> - <param name="revision">fcf62e5b494b78be35ee884c48ad84663abef0f0</param> + <param name="revision">619d9b3c4082dcf872c611ef18458ced067c29d7</param> </service> <service name="recompress" mode="disabled"> <param name="file">libfabric*.tar</param> ++++++ libfabric-1.16.0.0.fcf62e5b494b.tar.bz2 -> libfabric-1.16.1.0.619d9b3c4082.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/Makefile.am new/libfabric-1.16.1.0.619d9b3c4082/Makefile.am --- old/libfabric-1.16.0.0.fcf62e5b494b/Makefile.am 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/Makefile.am 2022-10-07 21:13:18.000000000 +0200 @@ -197,7 +197,7 @@ src_libfabric_la_DEPENDENCIES = libfabric.map if !EMBEDDED -src_libfabric_la_LDFLAGS += -version-info 20:0:19 +src_libfabric_la_LDFLAGS += -version-info 20:1:19 endif src_libfabric_la_LDFLAGS += -export-dynamic \ $(libfabric_version_script) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/NEWS.md new/libfabric-1.16.1.0.619d9b3c4082/NEWS.md --- old/libfabric-1.16.0.0.fcf62e5b494b/NEWS.md 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/NEWS.md 2022-10-07 21:13:18.000000000 +0200 @@ -6,6 +6,30 @@ version 1.0. New major releases include all fixes from minor releases with earlier release dates. +v1.16.1, Fri Oct 7, 2022 +======================== + +## EFA + +- Flush MR cache when fork() is called + +## RxM + +- Disable 128-bit atomics + +## SHM + +- Add safeguards around peer mapping initialization +- Fix Ze IPC race condition on startup + +## Verbs + +- Add missing header file to release package + +## Fabtests + +- Add net provider test config files to release package + v1.16.0, Fri Sep 30, 2022 ========================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/configure.ac new/libfabric-1.16.1.0.619d9b3c4082/configure.ac --- old/libfabric-1.16.0.0.fcf62e5b494b/configure.ac 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/configure.ac 2022-10-07 21:13:18.000000000 +0200 @@ -7,7 +7,7 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.60]) -AC_INIT([libfabric], [1.16.0], [[email protected]]) +AC_INIT([libfabric], [1.16.1], [[email protected]]) AC_CONFIG_SRCDIR([src/fabric.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/contrib/intel/jenkins/runtests.py new/libfabric-1.16.1.0.619d9b3c4082/contrib/intel/jenkins/runtests.py --- old/libfabric-1.16.0.0.fcf62e5b494b/contrib/intel/jenkins/runtests.py 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/contrib/intel/jenkins/runtests.py 2022-10-07 21:13:18.000000000 +0200 @@ -45,7 +45,7 @@ else: imb_group = '1' -node = (os.environ['NODE_NAME']).split('-')[0] +node = (os.environ['NODE_NAME']).split('_')[0] hosts = [node] mpilist = ['impi', 'mpich', 'ompi'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/Makefile.am new/libfabric-1.16.1.0.619d9b3c4082/fabtests/Makefile.am --- old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/Makefile.am 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/fabtests/Makefile.am 2022-10-07 21:13:18.000000000 +0200 @@ -93,6 +93,8 @@ test_configs/osx.exclude \ test_configs/eq_cq.test \ test_configs/lat_bw.test \ + test_configs/net/all.test \ + test_configs/net/net.exclude \ test_configs/sockets/all.test \ test_configs/sockets/quick.test \ test_configs/sockets/complete.test \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/configure.ac new/libfabric-1.16.1.0.619d9b3c4082/fabtests/configure.ac --- old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/configure.ac 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/fabtests/configure.ac 2022-10-07 21:13:18.000000000 +0200 @@ -5,7 +5,7 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) -AC_INIT([fabtests], [1.16.0], [[email protected]]) +AC_INIT([fabtests], [1.16.1], [[email protected]]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) AC_CONFIG_HEADERS(config.h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/pytest/common.py new/libfabric-1.16.1.0.619d9b3c4082/fabtests/pytest/common.py --- old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/pytest/common.py 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/fabtests/pytest/common.py 2022-10-07 21:13:18.000000000 +0200 @@ -1,14 +1,50 @@ import pytest import errno +import os +from tempfile import NamedTemporaryFile +from subprocess import run +from retrying import retry + +class SshConnectionError(Exception): + + def __init__(self): + super().__init__(self, "Ssh connection failed") + + +def is_ssh_connection_error(exception): + return isinstance(exception, SshConnectionError) + + +def has_ssh_connection_err_msg(output): + err_msgs = ["kex_exchange_identification: Connection closed by remote host", + "ssh_exchange_identification: Connection closed by remote host", + "ssh_exchange_identification: read: Connection reset by peer", + "port 22: Connection refused"] + + for msg in err_msgs: + if output.find(msg) != -1: + return True + + return False + + +@retry(retry_on_exception=is_ssh_connection_error, stop_max_attempt_number=3, wait_fixed=5000) def has_cuda(ip): - from subprocess import run - proc = run(["ssh", ip, "nvidia-smi", "-L"]) + outfile = NamedTemporaryFile(prefix="nvidia_smi.").name + proc = run("ssh {} nvidia-smi -L > {} 2>&1".format(ip, outfile), shell=True) + output = open(outfile).read() + os.unlink(outfile) + if has_ssh_connection_err_msg(output): + raise SshConnectionError() + return proc.returncode == 0 + +@retry(retry_on_exception=is_ssh_connection_error, stop_max_attempt_number=3, wait_fixed=5000) def has_hmem_support(cmdline_args, ip): - from subprocess import run - import os + outfile = NamedTemporaryFile(prefix="check_hmem.").name + binpath = "" if cmdline_args.binpath: binpath = cmdline_args.binpath @@ -17,9 +53,15 @@ + " " + "-p " + cmdline_args.provider if cmdline_args.environments: cmd = cmdline_args.environments + " " + cmd - proc = run(["ssh", ip, cmd]) + proc = run("ssh {} {} > {} 2>&1".format(ip, cmd, outfile), shell=True) + output = open(outfile).read() + os.unlink(outfile) + if has_ssh_connection_err_msg(output): + raise SshConnectionError() + return proc.returncode == 0 + PASS = 1 SKIP = 2 FAIL = 3 @@ -93,6 +135,7 @@ self._is_negative = is_negative self._command = cmdline_args.populate_command(base_command, "host") + @retry(retry_on_exception=is_ssh_connection_error, stop_max_attempt_number=3, wait_fixed=5000) def run(self): import os from tempfile import NamedTemporaryFile @@ -113,10 +156,15 @@ process.terminate() timeout = True + output = open(outfile).read() print("") print("command: " + self._command) + if has_ssh_connection_err_msg(output): + print("encountered ssh connection issue") + raise SshConnectionError() + print("stdout: ") - print(open(outfile).read()) + print(output) os.unlink(outfile) assert not timeout, "timed out" @@ -233,6 +281,8 @@ return command + + @retry(retry_on_exception=is_ssh_connection_error, stop_max_attempt_number=3, wait_fixed=5000) def run(self): import os from time import sleep @@ -268,16 +318,30 @@ client_process.terminate() client_timed_out = True + server_output = open(server_outfile).read() + client_output = open(client_outfile).read() + print("") print("server_command: " + self._server_command) + if has_ssh_connection_err_msg(server_output): + print("encountered ssh connection issue!") + raise SshConnectionError() print("server_stdout:") - print(open(server_outfile).read()) + print(server_output) + os.unlink(server_outfile) print("client_command: " + self._client_command) + if has_ssh_connection_err_msg(client_output): + print("encountered ssh connection issue!") + raise SshConnectionError() + print("client_stdout:") - print(open(client_outfile).read()) + print(client_output) os.unlink(client_outfile) + if has_ssh_connection_err_msg(server_output) or has_ssh_connection_err_msg(client_output): + raise SshConnectionError() + assert not server_timed_out, "server timed out" assert not client_timed_out, "client timed out" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/pytest/requirements.txt new/libfabric-1.16.1.0.619d9b3c4082/fabtests/pytest/requirements.txt --- old/libfabric-1.16.0.0.fcf62e5b494b/fabtests/pytest/requirements.txt 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/fabtests/pytest/requirements.txt 2022-10-07 21:13:18.000000000 +0200 @@ -1,3 +1,4 @@ pytest pytest-html pyyaml +retrying diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/include/rdma/fabric.h new/libfabric-1.16.1.0.619d9b3c4082/include/rdma/fabric.h --- old/libfabric-1.16.0.0.fcf62e5b494b/include/rdma/fabric.h 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/include/rdma/fabric.h 2022-10-07 21:13:18.000000000 +0200 @@ -85,7 +85,7 @@ #define FI_MAJOR_VERSION 1 #define FI_MINOR_VERSION 16 -#define FI_REVISION_VERSION 0 +#define FI_REVISION_VERSION 1 enum { FI_PATH_MAX = 256, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/include/windows/config.h new/libfabric-1.16.1.0.619d9b3c4082/include/windows/config.h --- old/libfabric-1.16.0.0.fcf62e5b494b/include/windows/config.h 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/include/windows/config.h 2022-10-07 21:13:18.000000000 +0200 @@ -174,7 +174,7 @@ #define PACKAGE_TARNAME PACKAGE /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.16.0" +#define PACKAGE_VERSION "1.16.1" /* Define to the full name and version of this package. */ #define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/man/fi_verbs.7.md new/libfabric-1.16.1.0.619d9b3c4082/man/fi_verbs.7.md --- old/libfabric-1.16.0.0.fcf62e5b494b/man/fi_verbs.7.md 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/man/fi_verbs.7.md 2022-10-07 21:13:18.000000000 +0200 @@ -197,6 +197,12 @@ *FI_VERBS_DEVICE_NAME* : Specify a specific verbs device to use by name +*FI_VERBS_USE_DMABUF* +: If supported, try to use ibv_reg_dmabuf_mr first to register dmabuf-based + buffers. Set it to "no" to always use ibv_reg_mr which can be helpful for + testing the functionality of the dmabuf_peer_mem hooking provider and the + corresponding kernel driver. (default: yes) + ### Variables specific to MSG endpoints *FI_VERBS_IFACE* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_domain.c new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_domain.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_domain.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_domain.c 2022-10-07 21:13:18.000000000 +0200 @@ -39,6 +39,8 @@ #include "rxr_cntr.h" #include "rxr_atomic.h" +struct dlist_entry g_efa_domain_list; + static int efa_domain_close(fid_t fid); static struct fi_ops efa_ops_domain_fid = { @@ -161,6 +163,7 @@ if (!efa_domain) return -FI_ENOMEM; + dlist_init(&efa_domain->list_entry); efa_domain->fabric = container_of(fabric_fid, struct efa_fabric, util_fabric.fabric_fid); @@ -263,6 +266,7 @@ goto err_free; } + dlist_insert_tail(&efa_domain->list_entry, &g_efa_domain_list); return 0; err_free: @@ -288,6 +292,8 @@ efa_domain = container_of(fid, struct efa_domain, util_domain.domain_fid.fid); + dlist_remove(&efa_domain->list_entry); + if (efa_domain->cache) { ofi_mr_cache_cleanup(efa_domain->cache); free(efa_domain->cache); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_domain.h new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_domain.h --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_domain.h 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_domain.h 2022-10-07 21:13:18.000000000 +0200 @@ -52,8 +52,11 @@ bool mr_local; uint64_t rdm_mode; size_t rdm_cq_size; + struct dlist_entry list_entry; /* linked to g_efa_domain_list */ }; +extern struct dlist_entry g_efa_domain_list; + /* * efa_is_cache_available() is a check to see whether a memory registration * cache is available to be used by this domain. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_fabric.c new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_fabric.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_fabric.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_fabric.c 2022-10-07 21:13:18.000000000 +0200 @@ -285,6 +285,7 @@ goto err_free; } + dlist_init(&g_efa_domain_list); return 0; err_free: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_fork_support.c new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_fork_support.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/efa/src/efa_fork_support.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/efa/src/efa_fork_support.c 2022-10-07 21:13:18.000000000 +0200 @@ -140,7 +140,7 @@ * running on an EC2 instance. */ static -void efa_atfork_callback() +void efa_atfork_callback_warn_and_abort() { static int visited = 0; @@ -176,6 +176,29 @@ abort(); } +/** + * @brief flush all MR caches + * + * Going through all domains, and flush the MR caches in them + * until all inactive MRs are de-registered. + * This makes all memory regions that are not actively used + * in data transfer visible to the child process. + */ +void efa_atfork_callback_flush_mr_cache() +{ + struct dlist_entry *tmp; + struct efa_domain *efa_domain; + bool flush_lru = true; + + dlist_foreach_container_safe(&g_efa_domain_list, + struct efa_domain, + efa_domain, list_entry, tmp) { + if (efa_domain->cache) { + while(ofi_mr_cache_flush(efa_domain->cache, flush_lru)); + } + } +} + #ifndef _WIN32 /* @brief Check when fork is requested and abort in unsupported cases @@ -230,14 +253,21 @@ * fork check above. This can move to the provider init once that check * is gone. */ - if (!fork_handler_installed && g_efa_fork_status == EFA_FORK_SUPPORT_OFF) { - ret = pthread_atfork(efa_atfork_callback, NULL, NULL); + if (!fork_handler_installed && g_efa_fork_status != EFA_FORK_SUPPORT_UNNEEDED) { + if (g_efa_fork_status == EFA_FORK_SUPPORT_OFF) { + ret = pthread_atfork(efa_atfork_callback_warn_and_abort, NULL, NULL); + } else { + assert(g_efa_fork_status == EFA_FORK_SUPPORT_ON); + ret = pthread_atfork(efa_atfork_callback_flush_mr_cache, NULL, NULL); + } + if (ret) { EFA_WARN(FI_LOG_DOMAIN, "Unable to register atfork callback: %s\n", strerror(-ret)); return ret; } + fork_handler_installed = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/rxm/src/rxm_atomic.c new/libfabric-1.16.1.0.619d9b3c4082/prov/rxm/src/rxm_atomic.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/rxm/src/rxm_atomic.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/rxm/src/rxm_atomic.c 2022-10-07 21:13:18.000000000 +0200 @@ -509,6 +509,12 @@ return -FI_EINVAL; } + if ((datatype == FI_INT128) || (datatype == FI_UINT128)) { + FI_WARN(&rxm_prov, FI_LOG_EP_CTRL, + "128-bit integers not supported\n"); + return -FI_EOPNOTSUPP; + } + ret = ofi_atomic_valid(&rxm_prov, datatype, op, flags); if (ret || !attr) return ret; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/shm/src/smr_ep.c new/libfabric-1.16.1.0.619d9b3c4082/prov/shm/src/smr_ep.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/shm/src/smr_ep.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/shm/src/smr_ep.c 2022-10-07 21:13:18.000000000 +0200 @@ -755,7 +755,7 @@ struct smr_cmd *cmd; struct smr_resp *resp; struct smr_tx_entry *pend; - int ret; + int ret = -FI_EAGAIN; if (ofi_cirque_isfull(smr_resp_queue(ep->region))) return -FI_EAGAIN; @@ -765,12 +765,14 @@ pend = ofi_freestack_pop(ep->pend_fs); smr_generic_format(cmd, peer_id, op, tag, data, op_flags); - if (iface == FI_HMEM_ZE && smr_ze_ipc_enabled(ep->region, peer_smr)) - ret = smr_format_ze_ipc(ep, id, cmd, iov, device, total_len, - ep->region, resp, pend); - else + if (iface == FI_HMEM_ZE) { + if (smr_ze_ipc_enabled(ep->region, peer_smr)) + ret = smr_format_ze_ipc(ep, id, cmd, iov, device, + total_len, ep->region, resp, pend); + } else { ret = smr_format_ipc(cmd, iov[0].iov_base, total_len, ep->region, resp, iface); + } if (ret) { FI_WARN_ONCE(&smr_prov, FI_LOG_EP_CTRL, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/util/src/util_shm.c new/libfabric-1.16.1.0.619d9b3c4082/prov/util/src/util_shm.c --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/util/src/util_shm.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/util/src/util_shm.c 2022-10-07 21:13:18.000000000 +0200 @@ -363,6 +363,9 @@ const char *name = smr_no_prefix(peer_buf->peer.name); char tmp[SMR_PATH_MAX]; + if (peer_buf->region) + return FI_SUCCESS; + pthread_mutex_lock(&ep_list_lock); entry = dlist_find_first_match(&ep_name_list, smr_match_name, name); if (entry) { @@ -493,6 +496,7 @@ node->data = (void *) (intptr_t) *id; strncpy(map->peers[*id].peer.name, name, SMR_NAME_MAX); map->peers[*id].peer.name[SMR_NAME_MAX - 1] = '\0'; + map->peers[*id].region = NULL; ret = smr_map_to_region(prov, &map->peers[*id]); if (!ret) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/prov/verbs/Makefile.include new/libfabric-1.16.1.0.619d9b3c4082/prov/verbs/Makefile.include --- old/libfabric-1.16.0.0.fcf62e5b494b/prov/verbs/Makefile.include 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/prov/verbs/Makefile.include 2022-10-07 21:13:18.000000000 +0200 @@ -15,7 +15,8 @@ prov/verbs/src/verbs_rma.c \ prov/verbs/src/verbs_dgram_ep_msg.c \ prov/verbs/src/verbs_dgram_av.c \ - prov/verbs/include/ofi_verbs_priv.h + prov/verbs/include/ofi_verbs_priv.h \ + prov/verbs/include/linux/verbs_osd.h if HAVE_VERBS_DL pkglib_LTLIBRARIES += libverbs-fi.la diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfabric-1.16.0.0.fcf62e5b494b/src/hmem_ze.c new/libfabric-1.16.1.0.619d9b3c4082/src/hmem_ze.c --- old/libfabric-1.16.0.0.fcf62e5b494b/src/hmem_ze.c 2022-09-30 00:39:02.000000000 +0200 +++ new/libfabric-1.16.1.0.619d9b3c4082/src/hmem_ze.c 2022-10-07 21:13:18.000000000 +0200 @@ -365,6 +365,7 @@ ze_ipc_mem_handle_t ze_handle; int ret; + assert(dev_fd != -1); ret = ze_hmem_get_handle(dev_buf, (void **) &ze_handle); if (ret) return ret;
