Sync from SUSE:SLFO:Main libfabric revision 67e5139e591a93578d7a52a7bbb53b4a

This commit is contained in:
Adrian Schröter 2024-09-03 13:38:34 +02:00
parent ae3a05dee8
commit 96d3e13694
8 changed files with 398 additions and 2011 deletions

View File

@ -1,5 +1,5 @@
<services>
<service name="tar_scm" mode="disabled">
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/ofiwg/libfabric.git</param>
<param name="package-meta">no</param>
@ -8,9 +8,9 @@
<param name="versionformat">@PARENT_TAG@.@TAG_OFFSET@.%h</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="revision">153261eadc7b318d69369cdad2a21f7189f3d8ab</param>
<param name="revision">159219639b7fd69d140892120121bbb4d694e295</param>
</service>
<service name="recompress" mode="disabled">
<service name="recompress" mode="manual">
<param name="file">libfabric*.tar</param>
<param name="compression">bz2</param>
</service>

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#
# spec file for package fabtests
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,10 +16,10 @@
#
%define git_ver .0.153261eadc7b
%define git_ver .0.159219639b7f
Name: fabtests
Version: 1.20.0
Version: 1.22.0
Release: 0
Summary: Test suite for libfabric API
License: BSD-2-Clause OR GPL-2.0-only
@ -38,8 +38,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
Fabtests provides a set of examples that uses libfabric, a fabric software library.
%prep
%setup -q -n libfabric-%{version}%{git_ver}
%patch0 -p1
%autosetup -p1 -n libfabric-%{version}%{git_ver}
%build
cd fabtests

BIN
libfabric-1.20.0.0.153261eadc7b.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
libfabric-1.22.0.0.159219639b7f.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,362 @@
-------------------------------------------------------------------
Mon Aug 5 11:20:55 UTC 2024 - Filip Kastl <filip.kastl@suse.com>
- Add -Wno-incompatible-pointer-types to CFLAGS to enable building
for 32bit with GCC 14.
-------------------------------------------------------------------
Sun Aug 4 16:17:16 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 1.22.0
- Coll
- Fix Coverity issues
- Core
- General bug fixes
- hmem: change neuron get_dmabuf_fd error code
- Fix an error in the error handling path of fi_param_define()
- Makefile.am: Add Windows build files to distribution tarball
- hmem: disable ZE IPC
- Add profile variables for connections and memory allocated
- hmem: Fix `cuDeviceCanAccessPeer()` error reporting
- man: Update text for `len` parameter
- Add page size MR attr field
- man: Extend fi_mr_refresh support
- man: Improve FI_MR_ALLOCATED documentation
- man: Support optional MR desc
- man: Improve FI_MR_HMEM documentation
- Added ofi_get_realtime interfaces
- Add endpoint options for max message size and inject size
- Add Windows definition for `EREMOTEIO`
- EFA
- General improvement and bug fixes
- Handle recv cancel for zero copy recv
- Avoid iterating EP list in CQ read
- Add RDMA core errno for remote unknown peer
- Map EFA errnos to Libfabric codes
- Improve the zero-copy receive feature
- Improve the handshake enforcement procedure
- Support unsolicited rdma-write recv
- Support FI_MORE for eager send and rdma-write
- Improve the EFA_IO_COMP error code and explanation
- Improve the unit test for LL128 protocol
- Distinguish max RMA size from msg size
- Hooks
- dmabuf: Fix incompatible pointer warning
- OPX
- Add missing file needed for fabric direct build to release package
- Fix performance issue caused by not setting ACK bit in the single
SDMA packet case
- TID cache debug improvements
- Detection of driver lack of support for TID
- Multi-CTS support for TID
- Removal of statement that TID is not supported
- OPX Tracer improvements
- Improvements to OPX shared memory cleanup
- H to H performance improvements for build that supports HMEM
- Bug fix for a threshold check
- Bug fix for FI_SELECTIVE_COMPLETION
- CN5000 fixes
- Parameterization of various thresholds
- Further enhancements to support NVIDIA GPUs, included CUDA-allocated
bounce buffers and in-provider support for GDRCopy
- Enhancements to enable support for CN5000 hardware
- Better checking for TID support
- General TID enhancements
- Pkey error handling
- Send work queue splitting
- Support for OPX tracer for profiling purposes
- Coverity scan fixes
- Fixes and enhancements to logging and debug messages
- Intranode RMA read fixes
- Fix compile issues
- Fix shared memory segment index creation bug
- PSM3
- Update provider to sync with IEFS 11.7.0.0.110
- Improved auto-tuning features for PSM3, including dynamic Credit Flows
and detecting the presence of the rv kernel module
- Improved PSM3 intra-node performance for large message sizes
- SHM
- Added support for write() method to submit DSA work
- Touch all buffer pages after DSA page fault
- Add return and more descriptive error message
- Fix coverity about incorrect sign
- Fix memory leaks for srx
- Fix atomic read
- Sockets
- Fix Coverity issues
- USNIC
- Fix a few Coverity issues
- Util
- Discard outstanding operations in util_srx_close
- Enable profile on the size of bufpool allocated.
- Add more predefined profile variables.
- Fix issue while displaying addresses with fi_info -a <addr_format>
- fi_pingpong: Fix out of scope memory leak
- Add source address to fi_pingpong
- Verbs
- Flush CQ for SQ on no SQ credit
- Optimize search for device max inline size
- Enable profiling
- Fabtests
- pytest/shm: reduce the msg size in test_unexpected_msg
- Fix synapseai fabtests build
- Add pytests for EFA zero-copy receive
- Add benchmark option for `FI_OPT_MAX_MSG_SIZE`
- benchmarks: Add synapseai support
- Disable fi_rdm_tagged_peek test for ucx and psm3
- Add manual init sync to fi_rdm_multiclient and fi_rdm
- Refactor ft_sock_sync to take in a socket
- Add fi_rdm_bw test
- Skip rma_pingpong write tests
- Init rx_buf before sending data
- Add rma_pingpong tests to makefile
- pytest: use different message sizes for rma pingpong
- Fix missing fixture memory_type in test_rma_pingpong_range_no_inject
- pytest: account for process startup overhead in client-server tests
- pytest: save client process output to a file
- Support testing inject with cq data
- multinode: update arguments
- multi_ep: Fix memory leak
- rdm_tagged_peek: Align rx's msg_order with tx's
- Add backlog > 0 to listen call
-------------------------------------------------------------------
Wed Apr 3 11:32:43 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Enable ucx and new efa provider on 64b architectures.
- Use a single changes file for libfabric and fabtests.
- Update to 1.21.0
- Core
- Various update and fixed in man pages
- Fix xpmem memory corruption
- Extend FI_PROVIDER_PATH to allow setting preferred DL provider
- Add a SECURITY.md file
- Document preferred threading model for scalable endpoints
- Move FI_PRIORITY to internal flag
- Remove FI_PROV_SPECIFIC
- Remove unimplemented or unused features
- Support cntr byte counting
- configure: Do not check for xpmem if disabled
- Add FI_PROGRESS_CONTROL_UNIFIED
- hmem/cuda: Get multiple attributes at once in cuda_is_addr_valid
- configure: Add -pipe by default to CFLAGS
- Selectively generate warnings on failed loading of DL providers
- hmem: introduce ofi_dev_reg_copy_*_iov ops
- Print provider path on fabric creation
- Introduce FI_OPT_SHARED_MEMORY_PERMITTED
- README.md: Add badge for openssf scorecard
- man: Regulate the fi_setopt call sequence.
- man: Clarify the usage of FI_RMOTE_CQ_DATA flag
- man: Add ucx provider to the fi_provider man page
- configure.ac: add extra check for 128 bit atomic support
- include/osd: align atomic complex definitions
- hmem/synapseai: Refine the error handling and warning
- Specify C11 standard for Visual Studio builds
- configure: Do not check for xpmem if disabled
- man page fixes
- EFA
- General improvement and bug fixes
- Propagate errnos from core functions untouched
- Create 1:1 relationship between libfabric CQs and IBV CQs
- Do not progress ep inside transmission call when hitting EAGAIN
- Remove unnecessary check in rdma write.
- Handle rx pkts error without ope
- Add a new rx pkt counter
- Enable runting for neuron with a different runt size
- Distinguish unresponsive receiver errors
- Remove unnecessary handshake in send path
- Don't fail the whole domain init if cudamalloc failed
- Introduce efa specific domain operations
- Implement FI_OPT_SHARED_MEMORY_PERMITTED
- Do not memset rxe to 0 on init
- Reduce # of error cases in happy path
- Add FI_EFA_USE_HUGE_PAGE to efa man page.
- Don't do handshake for local fi_write
- Add pingpong test after exhausting MRs
- Introduce utilities to exhaust MRs on EFA device
- Test EFA with a 1GiB message
- Do not abort on all deprecated env vars
- Onboard fi_mr_dmabuf API in mem reg ops.
- Try registering cuda memory via dmabuf when checking p2p
- Introduce HAVE_EFA_DMABUF_MR macro in configure
- Use long CTS protocol if long read and runting read protocols fail
because of memory registration limits
- Remove unnecessary check in rdma write.
- Enable runting for neuron with a different runt size
- Handle rx pkts error without ope
- Distinguish unresponsive receiver errors
- Add `efa_show_help()`
- Refactor error code definitions
- Remove error message assertions from CQ unit tests
- Refactor `efa_strerror()`
- Doxyfile: Configure tabs to 8 spaces
- Rename Doxyfile
- Hooks
- dmabuf_peer_mem: initialize fd to supress compiler warning
- NETDIR
-Removed. The functionality is intergrated into the verbs provider.
- OPX
- Fix compiler warnings and coverity issues
- General improvement and bug fixes
- Add GPU support to expected TID
- RZV RTS packet exclude empty immediate data
- Add more efficient check for cuda-resident user buffer
- Improve default HFI selection logic in multi rail environments
- Flush dead list opportunistically
- Add RISC-V support
- Make update HDRQ register frequency configurable at build time
- Removed all references to the reliability nack threshold env var
- Added missing tuneables, rearraged to match fi_info -e output
- Use BAR load/store macros
- Check HFI driver version to allow GPU-enabled build/run
- Added kernel and driver version check to allow/disallow expected receive TID
- Fix max SHM connections to allow up to 16 HFIs
- Use FI_HMEM_SYSTEM for Cuda-Managed (Unified) memory
- Handle FI_OPT_CUDA_API_PERMITTED
- Use contiguous send when only one iov present
- Always replay TID packets over SDMA
- Add Virtual Lane and Partition pkey (FI_OPX_SL and FI_OPX_PKEY)
- Forced AV type to be AV Map when requested AV is unsupported
- Reduce size of opx_shm_tx
- Add GPU support for RMA Atomic operations
- Add GPU support for RMA reads and writes
- Add HMEM debug counters
- Print debug counters upon receiving SIGUSR1
- Fix multi-receive to work with contiguous rzv payload
- Initial support for GPU / FI_HMEM
- Limit multipacket eager implementation to tagged sends
- Read, verify and store some hfi chip attributes
- PSM3
- Update provider to sync with IEFS 11.6.0.0.231
- Fix some conditional build errors
- RSTREAM
- Removed.
- RXM
- Add option to auto detect hmem iface of user buffers
- SHM
- Manually align 8 byte fields in memory region
- Close device_fds for connected peers when the EP is closed
- Print shm name and error code when failed to open
- Mark send as completed when a message is discarded
- Don't close dmabuf-fd when a request is done
- Revert the smr_region fields adjustment
- Fix various coverity issues
- Add ep to cq ep list once in cq bind
- Add ofi_buf_alloc error handling
- Revert the smr_region fields adjustment
- Don't close dmabuf-fd when a request is done
- Mark send as completed when a message is discarded
- Print shm name and error code when failed to open
- Close device_fds for connected peers when the EP is closed
- SOCKETS
- fix compiler warnings and coverity issues
- UCX
- Fix incorrect enum value in FI_DBG() and FI_WARN()
- USNIC
- Turn off compiler warnings of possible string truncation
- Util
- Make ep_list_lock noop for FI_PROGRESS_CONTROL_UNIFIED
- Save control progress model to util_domain
- Set import monitor state to idle upon close
- Add name field to memory monitors
- memhooks: Fix a bug when calculating mprotect region
- Modify domain_attr based on FI_AV_AUTH_KEY
- Verbs
- Non-blocking EP creation
- Address cm_id resource leak in rdma_reject path
- Redirected error handle logic for dmabuf failure in verbs
- Added rocr dmabuf support under verbs
- Windows: Check error code from GetPrivateData
- Add missing lock to protect SRX
- Fix compiler warnings about out of boundary access
- Fabtests
- Fix various coverity issues
- General improvement and bug fixes
- Add multi_ep test
- Serialize the run of fi_cq_test
- Utilize `junitparser` module directly
- Add progress models to SHM/EFA fabtests
- Add option to change progress model
- efa/rnr_cq_read_err: poll cq when hitting EAGAIN
- Allow testing multi_ep with shared/non-shared cq and av
- Print warning for HMEM iface init failure
- efa: Add small tx_rx size test
- pytest: Make ssh connection error pattern less stringent
- Add new exclude file for io_uring tests
- Add rma_pingpong benchmark
- efa: Make 1G tests run faster
- pytests: add command line argument for dmabuf reg
- Bump Libfabric API version.
- Add option to support dmabuf MR
- Add dmabuf ops for cuda.
- Replace strtok with strtok_r
- Add new exclude file for io_uring tests
-------------------------------------------------------------------
Mon Mar 25 07:45:03 UTC 2024 - Nicolas Morey <nicolas.morey@suse.com>
- Update to 1.20.1
- Core
- hmem/ze: Change the library name passed to dlopen
- hmem/ze: map device id to physical device
- hmem/ze: skip duplicate initialization
- hmem/ze: dynamically allocate device resources based on number of devices
- hmem/ze: fix hmem_ze_copy_engine variable look up
- hmem/ze: Increase ZE_MAX_DEVICES to 32
- man: Fix typo in fi_getinfo man page
- Fix compiler warning when compiling with ICX
- man: Fix fi_rxm.7 and fi_collective.3 man pages
- man: Update EFA docs for FI_EFA_INTER_MIN_READ_WRITE_SIZE
- EFA
- efa_rdm_ep_record_tx_op_submitted() rm peer lookup
- Remove peer lookup from efa_rdm_pke_sendv()
- Make handshake response use txe
- test: Only close SHM if SHM peer is Created
- Handshake code allocs txe via efa util
- Initialize txe.rma_iov_count to 0
- Switch fi_addr to efa_rdm_peer in trigger_handshake
- Downgrade EFA Endpoint Creation WARN to INFO
- Init srx_ctx before use
- Clean up generic_send path
- Pass in efa_rdm_ep to efa_rdm_msg_generic_recv()
- Make recv path slightly more efficient
- re-org rma write to avoid duplicate checks
- Add missing sync_memops call to writedata
- use peer pointer from txe in read, write and send
- Pass in peer pointer to txe
- Get rid of noop instruction from empty #define
- Remove noop memset
- Fix the ibv cq error handling.
- Don't do handshake for local read
- Fix a typo in configure.m4
- Make runt_size aligned
- OPX
- Initialize cq error data size
- RXM
- Fix data error with FI_OFI_RXM_USE_RNDV_WRITE=1
- SHM
- Fix coverity issue about resource leak
- Adjust the order of smr_region fields.
- Allocate peer device fds dynamically
- Util
- Fix coverity issue about missing lock
- Implement timeout in util_wait_yield_run()
- Fix bug in util_cq startup error case
- util_mem_hooks: add missing parantheses
- Verbs
- Windows: Resolve regression in user data retrieval
- Fabtests
- efa: Close ibv device after use
- efa: Get device MR limit from ibv_query_device
- efa: Add simple unexpected test to MR exhaustion test
- pytest: add a new ssh connection error pattern
-------------------------------------------------------------------
Thu Feb 29 16:18:32 UTC 2024 - pgajdos@suse.com
- Use %autosetup macro. Allows to eliminate the usage of deprecated
%patchN
-------------------------------------------------------------------
Sun Nov 19 17:27:58 UTC 2023 - Nicolas Morey <nicolas.morey@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package libfabric
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,10 +17,17 @@
#
%define git_ver .0.153261eadc7b
%define git_ver .0.159219639b7f
%ifarch aarch64 %power64 x86_64 s390x
%if 0%{?suse_version} > 1530
%define with_ucx 1
%endif
%define with_efa 1
%endif
Name: libfabric
Version: 1.20.0
Version: 1.22.0
Release: 0
Summary: User-space RDMA Fabric Interfaces
License: BSD-2-Clause OR GPL-2.0-only
@ -40,6 +47,13 @@ BuildRequires: libpsm2-devel
BuildRequires: fdupes
BuildRequires: librdmacm-devel
BuildRequires: libtool
%if 0%{?with_ucx}
BuildRequires: libucm-devel
BuildRequires: libucp-devel
# 1.10 Needed for UCS_MEMORY_TYPE_UNKNOWN
BuildRequires: libucs-devel >= 1.10
BuildRequires: libuct-devel
%endif
BuildRequires: pkg-config
%define lib_major 1
@ -65,15 +79,21 @@ libfabric provides a user-space API to access high-performance fabric
services, such as RDMA. This package contains the development files.
%prep
%setup -q -n %{name}-%{version}%{git_ver}
%patch0 -p1
%autosetup -p1 -n %{name}-%{version}%{git_ver}
%build
export CFLAGS=-Wno-incompatible-pointer-types
rm -f config/libtool.m4
autoreconf -fi
# defaults: with-dlopen and without-valgrind can be over-rode:
%configure %{?_without_dlopen} %{?_with_valgrind} \
--enable-sockets --enable-verbs --enable-usnic \
%if 0%{?with_efa}
--enable-efa \
%endif
%if 0%{?with_ucx}
--enable-ucx \
%endif
%ifarch x86_64
--enable-psm2 \
--enable-psm3 \
@ -129,6 +149,9 @@ rm -f %{buildroot}%{_libdir}/*.la
%ifarch x86_64
%{_includedir}/rdma/fi_ext_psm2.h
%endif
%if 0%{?with_efa}
%{_includedir}/rdma/fi_ext_efa.h
%endif
%{_mandir}/man3/*
%{_mandir}/man7/*

View File

@ -1,9 +1,8 @@
#!/bin/bash
# This script has to be run prior to a check-in if changes were done
# to spec and/or changes
cp libfabric.changes fabtests.changes
GIT_VER=$(grep "%define git_ver" libfabric.spec)
VERSION=$(egrep "^Version:" libfabric.spec)
sed -i -e 's/^%define git_ver.*$/'"$GIT_VER/" -e 's/^Version:.*$/'"$VERSION/" fabtests.spec
osc service localrun format_spec_file
osc service run format_spec_file