SPDK v23.01: accel chained ops, accel crypto, ublk target

On behalf of the SPDK community I’m pleased to announce the release of SPDK 23.01 LTS!! The SPDK 23.01 release is a long term support release that will be supported for 1 year.

This release contains the following new features:

  • Accelerator framework chained operations: Added API for chaining multiple accel operations together and executing them all in a single call. This mode is supported in copy, decompress, decrypt, encrypt, and fill operations. This feature is considered experimental.
  • Accelerator framework encryption: Added API for encrypt and decrypt operations to the accelerator framework. This feature can be used via accel_sw module with isa-l-crypto, and two new accel modules dpdk_cryptodev and mlx5.
  • ublk target: Added ublk target that exposes any SPDK bdev as high-performance kernel block device. This feature is considered experimental. Please see ublk documentation for details.
  • mDNS discovery: Added support for Avahi based mDNS discovery service, as per NVMe TP 8009 - Automated Discovery of Ethernet Discovery Controllers.
  • iobuf buffer pool: Added iobuf buffer pool API for allocating data buffers across SPDK libraries.
  • spdk spinlock: Added spinlocks that are aware of the SPDK concurrency model. This feature is used in bdev layer to enforce that no internal bdev locks can be held when a poller or message goes off CPU. Consumers of the bdev API must be on an SPDK thread.
  • bdev io stats: Added API for displaying per channel I/O statistics for required bdev, and display maximum and minimum latencies and I/O error counts.
  • NVMe bdev path stats: Added I/O statistics per I/O path to the NVMe bdev module for NVMe bdev multipath.
  • SRQ in RDMA: Added support for SRQ in RDMA transport of NVMe-oF initiator.
  • RAID I/O metadata: Added support for extended sector sizes in raid bdev.
  • DPDK 22.11.1: DPDK submodule has been updated to DPDK 22.11.1 LTS.
  • bdev copy I/O: Added support for new bdev copy I/O type.

The full changelog for this release is available here. Deprecation notices for users updating from previous releases can be found here.

New Contributors

This release contains 826 commits from 75 authors with over 64k lines of code changed.

We’d especially like to recognize all of our first time contributors:

  • Anton Eidelman
  • Dennis Maisenbacher
  • Fengnan Chang
  • Gili Buzaglo
  • Krystyna Szybalska
  • Krzysztof Smolinski
  • Liu Darong
  • Li Zengwu
  • Luo Yifan
  • Melon Masou
  • Michal Rozegnal
  • Mykola Golub
  • Parameswaran Krishnamurthy
  • Pierre Lestringant
  • Roger Liu
  • Shua Lv
  • Sijie Sun
  • Sunil Shahu
  • Szymon Kamuda
  • Xinliang Liu
  • Xin Yang
  • Xue Liu
  • Yue Zhu
  • Yuhua

Thanks to everyone for your contributions, participation, and effort!