On behalf of the SPDK community I’m pleased to announce the release of SPDK 21.01 LTS!!

The SPDK 21.01 release is a long term support release that will be supported for 1 year.

This release contains the following new features:

  • Dynamic scheduler: SPDK lightweight threads are now scheduled onto reactors in SPDK’s event framework dynamically. The scheduler rebalances idle threads, adjusts CPU frequency, and turns idle reactors to interrupt mode. Please see scheduler documentation for details. This feature is considered experimental.
  • vfio-user NVMe-oF transport: Added support for the new vfio-user NVMe-oF transport that emulates an NVMe device over shared memory to a virtual machine or separate process. This feature is considered experimental.
  • vfio-user NVMe transport: Added support for the vfio-user NVMe transport to allow connecting to emulated NVMe devices directly from a process. This feature is considered experimental.
  • NVMe ZNS Zone Append: Added support for the Zone Append command from the Zoned Namespace Command Set.
  • pkg-config: SPDK now generates pkg-config files to simplify the process of determining which libraries must be linked into an SPDK application. See pkg-config.
  • DPDK: Added support for DPDK 20.11.

Users updating from the previous 20.01 LTS release should note that legacy configuration (.ini) files have been removed in favor of JSON-RPC. Please see jsonrpc_convert for information on the new configuration mechanism.

The full changelog for this release is available here.

This release contains 587 commits from 45 authors with over 31k lines of code changed.

New Contributors

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

  • David Marchand
  • Feilong Lin
  • Guo Zhihong
  • Jiewei Ke
  • Madhu Adav MJ
  • Mao Jiang
  • Michael Bang
  • Naresh Gottumukkala
  • Nick Connolly
  • Roman Penyaev
  • Rui Chang
  • ShadowMov
  • Shihao Sun
  • Weifeng Su
  • Zhiqiang Liu

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