diff --git a/NEWS.md b/NEWS.md index 6b6578aaf9a..e91e4065720 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,52 +6,153 @@ bug fixes (and other actions) for each version of Libfabric since version 1.0. New major releases include all fixes from minor releases with earlier release dates. -v1.17.0, Fri Dec 9, 2022 -======================== +v1.17.0, Fri Dec 16, 2022 +========================= ## Core -- TODO +- Add IFF_RUNNING check to indicate iface is up and running +- General code cleanups +- Add abstraction for common io_uring operations +- Support ROCR get_base_addr +- Add a 'flags' parameter to fi_barrier() +- Introduce new calls for opening domain and endpoint with flags +- Add ability to re-sort the fi_info list +- Allowing layering of rxm over net provider +- General cleanup of provider filtering functions +- Add io_uring operations to be used by sockapi +- Modify internal handling of async socket operations +- Sockets operations are moved to a common sockapi abstraction +- Add support for Ze host register/unregister +- Add new offload provider type +- Rename fi_prov_context and simplify its use +- Convert interface prefix string checks to exact checks ## EFA -- TODO +- Code cleanups and various bug fixes +- Improved debug logging and warnings and assertions +- Do not ignore hints->domain_attr->name +- Fix the calculation of REQ header size for a packet entry +- Fix default value for host memory's max_medium_msg_size +- Add tracepoints to send/recv/read ops +- Simplified emulated read protocol +- Set use_device_rdma according to efa device id +- Fix shm initialization path on error +- Fix Implementation of FI_EFA_INTER_MIN_READ_MESSAGE_SIZE +- Do not enable rdma_read if rxr_env.use_device_rdma is false +- Remove de-allocated CUDA memory region during registration +- Fix the error handling path of efa_mr_reg_impl() +- Fix rxr_ep unit tests involving ibv_cq_ex +- Add check of rdma-read capability for synapseai +- Report correct default for runt_size parameter +- Toggle cuda sync memops via environment variable. ## Net -- TODO +- Continued fork of tcp provider, will eventually merge changes back +- Fix inject support +- Fix memory leak in peek/claim path +- General code cleanups and bug fixes from initial fork +- Allow looking ahead in tcp stream to handle out-of-order messages +- Add message tracing ability +- Fetch correct ep when posting to a loopback connection +- Release lock in case of error in rdm_close +- Fix error path in xnet_enable_rdm +- Add missing progress lock in srx cleanup +- Code restructuring and enhancements with longer term goal of supporting io_uring +- Disable the progress thread in most situations +- Rename DL from libxnet-fi to libnet-fi +- Add missing initialization calls for DL provider +- Add support for FI_PEEK, FI_CLAIM, and FI_DISCARD +- Include source address with CQ entry +- Fix support for FI_MULTI_RECV ## OPX -- TODO +- Bug fixes and general code cleanup +- Fix progress checks and default domain +- Allow atomic fetch ops to use SDMA for sufficiently large counts +- Cleaned up FI_LOG_LEVEL=warn output +- Reset default progress to FI_PROGRESS_MANUAL +- Fixed GCC 10 build error with Auto Progress +- Add support for FI_PROGRESS_AUTO +- Use max allowed packet size in SDMA path when expected TID is turned off +- Expected receive (TID) rendezvous +- RMA Read/Write operations over SDMA +- Remove origin_rs from cts and dput packet header. +- Fix for hang - unable to match inbound packets with receive + context->src_addr (DAOS CART tests) +- Use single IOV for bounce buffer in SDMA requests. +- Check for FI_MULTI_RECV with bitwise OR instead of AND +- Fix for intermittent intra-node deadlock hang (DAOS CART tests) +- Fix to RPC transport error failure (DAOS CART tests) +- Fix for context->buf set to NULL +- Fix bad asserts +- Ensure atomicity of atomic ops +- fi_opx_cq_poll_inline count and head check fix +- Fix intermittent intra-node hang causing RPC timeouts (DAOS CART tests) +- Temporarily reduce SDMA queue ring size for possible driver bug workaround +- Fix alignment issue and asserts +- Enable more parallel SDMA operations ## PSM3 -- TODO +- Synced to IEFS 11.4.0.0.198 +- Tech Preview Ubuntu 22.04 Support +- Tech Preview Intel DSA Support +- Improved Intel GPU Support +- Various performance improvements +- Various bug fixes ## RxM -- TODO +- Always use rendezvous protocol for ZE device memory send +- Code cleanup +- Add option to free resources on AV removal ## SHM -- TODO +- Fix user_id support +- Write tx err comp to correct cq +- Fix index when setting FI_ADDR_USER_ID +- Remove extraneous ofi_cirque_next() call +- Add support for FI_AV_USER_ID +- Fix multi_recv messaging +- General code restructuring for maintainability +- Implement shared completion queues +- Decouple error processing from cq completion path to avoid switch +- Fix incorrect op passed into recv cancel operation +- Enhanced SHM implementation with DSA offload +- Use multiple SAR buffers per copy operation +- Fix ZE IPC race condition on startup ## TCP -- TODO +- Minor updates in preparation for io_uring support (via net provider) ## Util -- TODO +- Add option to free resources on AV removal +- Add 'flags' parameter to new fi_barrier2() call +- Add debugging in ofi_mr_map_verify +- Rename internal bitmask struct to include ofi prefix ## Verbs -- TODO +- Add option to disable dmabuf support +- FI_SOCKADDR includes support of FI_SOCKADDR_IB ## Fabtests -- TODO +- shared: Expand hmem support +- fi_loopback: Add support for tagged messages +- fi_mr_test: add support of hmem +- fi_rdm_atomic: Fix hmem support +- fi_rdm_tagged_peek: Read messages in order, code cleanup and fixes +- fi_multinode: Add performance and runtime control options, cleanups +- benchmarks: Add data verification to some bw tests +- fi_multi_recv: Fix possible crash in cleanup v1.16.1, Fri Oct 7, 2022 ======================== diff --git a/README.md b/README.md index a1e6ea1681d..716e5f213d9 100644 --- a/README.md +++ b/README.md @@ -158,25 +158,6 @@ PSM2 on the host software stack, leading to better overall performance. See the `fi_opx(7)` man page for more details. See [Cornelis Customer Center](https://customercenter.cornelisnetworks.com/) for support information. -### psm - -*** - -The `psm` provider runs over the PSM 1.x interface that is currently supported -by the Intel TrueScale Fabric. PSM provides tag-matching message queue -functions that are optimized for MPI implementations. PSM also has limited -Active Message support, which is not officially published but is quite stable -and well documented in the source code (part of the OFED release). The `psm` -provider makes use of both the tag-matching message queue functions and the -Active Message functions to support various libfabric data transfer APIs, -including tagged message queue, message queue, RMA, and atomic -operations. - -The `psm` provider can work with the `psm2-compat` library, which exposes -a PSM 1.x interface over the Intel Omni-Path Fabric. - -See the `fi_psm(7)` man page for more details. - ### psm2 *** @@ -290,50 +271,21 @@ option is redundant with `--with-usnic`. *** The verbs provider enables applications using OFI to be run over any verbs -hardware (Infiniband, iWarp, and RoCE). It uses the Linux Verbs API for network -transport and translates OFI calls to appropriate verbs API calls. -It uses librdmacm for communication management and libibverbs for other control -and data transfer operations. +hardware (Infiniband, iWarp, and RoCE). It uses either the Linux Verbs API or +Windows Network Direct API for network transport and translates OFI calls +to appropriate lower-level API calls. See the `fi_verbs(7)` man page for more details. #### Dependencies -- The verbs provider requires libibverbs (v1.1.8 or newer) and librdmacm (v1.0.16 +- The linux verbs provider requires libibverbs (v1.1.8 or newer) and librdmacm (v1.0.16 or newer). If you are compiling libfabric from source and want to enable verbs support, you will also need the matching header files for the above two libraries. If the libraries and header files are not in default paths, specify them in CFLAGS, LDFLAGS and LD_LIBRARY_PATH environment variables. -### bgq - -*** - -The `bgq` provider is a native provider that directly utilizes the hardware -interfaces of the Blue Gene/Q system to implement aspects of the libfabric -interface to fully support MPICH3 CH4. - -See the `fi_bgq(7)` man page for more details. - -#### Dependencies - -- The `bgq` provider depends on the system programming interfaces (SPI) and - the hardware interfaces (HWI) located in the Blue Gene/Q driver installation. - Additionally, the open source Blue Gene/Q system files are required. - -#### Configure options - -``` ---with-bgq-progress=(auto|manual) -``` - -If specified, set the progress mode enabled in FABRIC_DIRECT (default is FI_PROGRESS_MANUAL). - -``` ---with-bgq-mr=(basic|scalable) -``` - -If specified, set the memory registration mode (default is FI_MR_BASIC). +- For Windows, see the Network Direct section for dependencies, which are the same. ### Network Direct diff --git a/configure.ac b/configure.ac index ef24bec2589..f846d6696fa 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ dnl dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.60]) -AC_INIT([libfabric], [1.17.0rc2], [ofiwg@lists.openfabrics.org]) +AC_INIT([libfabric], [1.17.0], [ofiwg@lists.openfabrics.org]) AC_CONFIG_SRCDIR([src/fabric.c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) diff --git a/fabtests/README.md b/fabtests/README.md index e3085c1c959..25097d17635 100644 --- a/fabtests/README.md +++ b/fabtests/README.md @@ -7,17 +7,20 @@ software library. ## Notes Note that the fabtests suite is released paired with a specific -version of libfabric. For example, libfabric v1.4 and fabtests v1.4 +version of libfabric. For example, libfabric v1.14 and fabtests v1.14 were released together. Using these paired versions is the best way to test a given version of libfabric. Using version-mismatched libfabric/fabtests pairs may -produce unexpected results. +produce unexpected results. A newer version of fabtests is not +guaranteed to work with an older version of libfabric. However, an +older version of fabtests is expected to work with a newer version +of libfabric, in order to validate libfabric backwards compatibility. ## Building fabtests Distribution tarballs are available from the Github -[releases](https://github.com/ofiwg/fabtests/releases) tab. +[releases](https://github.com/ofiwg/libfabric/releases) tab. If you are building Fabtests from a developer Git clone, you must first run the `autogen.sh` script. This will invoke the GNU Autotools @@ -70,7 +73,7 @@ penalty. Consider the following example: ``` -$ ./configure --with-libfabric=/opt/libfabric --prefix=/opt/fabtests && make -j 32 && sudo make install +$ ./configure --with-libfabric=/opt/libfabric --prefix=/opt/fabtests && make -j && sudo make install ``` This will tell the Fabtests to look for Libfabric libraries in the @@ -80,7 +83,7 @@ This will tell the Fabtests to look for Libfabric libraries in the Alternatively: ``` -$ ./configure --prefix=/opt/fabtests && make -j 32 && sudo make install +$ ./configure --prefix=/opt/fabtests && make -j 32 sudo make install ``` Tells the Fabtests that it should be able to find the Libfabric header diff --git a/fabtests/configure.ac b/fabtests/configure.ac index b3dade1c974..5bb170d39d0 100644 --- a/fabtests/configure.ac +++ b/fabtests/configure.ac @@ -5,7 +5,7 @@ dnl dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) -AC_INIT([fabtests], [1.17.0rc2], [ofiwg@lists.openfabrics.org]) +AC_INIT([fabtests], [1.17.0], [ofiwg@lists.openfabrics.org]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR(config) AC_CONFIG_HEADERS(config.h) diff --git a/include/windows/config.h b/include/windows/config.h index 4245ea075a1..aec52f6a947 100644 --- a/include/windows/config.h +++ b/include/windows/config.h @@ -174,7 +174,7 @@ #define PACKAGE_TARNAME PACKAGE /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.17.0rc2" +#define PACKAGE_VERSION "1.17.0" /* Define to the full name and version of this package. */ #define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION