github spdk/spdk v22.01
SPDK v22.01: NVMe multipath, NVMe TCP zero-copy, NVMe-oF discovery service

latest releases: v24.09-pre, v24.05-rc1, v24.01...
2 years ago

accel

The batching capability was removed. Batching is now considered an implementation
detail of the low level drivers.

bdev

The NVMe bdev module supports multipath and improved I/O error resiliency.

The parameter retry_count of the RPC bdev_nvme_set_options was deprecated and will be
removed in SPDK 22.04, and the parameter transport_retry_count is added and used instead.

An new parameter bdev_retry_count is added to the RPC bdev_nvme_set_options.

New parameters, ctrlr_loss_timeout_sec, reconnect_delay_sec, and fast_io_fail_timeout_sec, are
added to the RPC bdev_nvme_attach_controller.

An new parameter num_io_queues is added to bdev_nvme_attach_controller RPC to allow specifying amount
of requested IO queues.

Added key_file parameter to the rbd_register_cluster RPC. It is an optional parameter to
specify a keyring file to connect to a RADOS cluster.

Added spdk_bdev_get_zone_id API to retrieve zone_id for a certain LBA.

bdev_aio

Added bdev_aio_rescan RPC to allow rescanning the size of aio bdev.

bdev_nvme

Added discovery service to bdev_nvme module, which now can connect to a discovery controller.
bdev_nvme will connect to all current and future subsystems in the discovery controller.
Added bdev_nvme_start_discovery and bdev_nvme_stop_discovery RPC.

dpdk

Updated DPDK submodule to DPDK 21.11.

env

Added spdk_pci_for_each_device.

Removed spdk_pci_get_first_device and spdk_pci_get_next_device. These APIs were unsafe, because
they did not account for PCI devices being inserted or removed while the caller was using handles
returned from these APIs. Existing users of these APIs should switch to spdk_pci_for_each_device
instead.

Added 3 experimental APIs to handle PCI device interrupts (spdk_pci_device_enable_interrupt,
spdk_pci_device_disable_interrupt, spdk_pci_device_get_interrupt_efd).

Added framework_get_pci_devices RPC to list PCIe devices attached to an SPDK application.

idxd

Many APIs are now vectored rather than scalar, meaning they take iovecs instead of individual pointers.

json

Added spdk_json_write_bytearray API to serialize a buffer as a hex string.

nvme

API spdk_nvme_trtype_is_fabrics was added to return existing transport type
is fabric or not.

API spdk_nvme_poll_group_remove was limited to be available only for a
disconnected qpair in the group.

New APIs, spdk_nvme_ctrlr_disconnect, spdk_nvme_ctrlr_reconnect_async, and
spdk_nvme_ctrlr_reconnect_poll_async, have been added to improve error recovery, and
the existing APIs,spdk_nvme_ctrlr_reset_async and spdk_nvme_ctrlr_reset_poll_async
were deprecated.

Added spdk_nvme_ctrlr_get_discovery_log_page API for getting the full discovery log page
from a discovery controller.

nvmf

Added support for zero-copy operations in the NVMe-oF TCP target. It can be enabled via
the zcopy parameter when creating a transport. The zero-copy operations are only used
for requests not using in-capsule data.

Added a subsystem parameter to spdk_nvmf_transport_stop_listen_async. When not NULL,
it will only disconnect qpairs for controllers associated with the specified subsystem.

Removed accept poller from transport layer. Each transport can have its own policy of
handling new connections. To notify transport layer spdk_nvmf_poll_group_add and
spdk_nvmf_tgt_new_qpair can be used.

scsi

Structure spdk_scsi_lun has been extended with new member resizing so that SCSI layer now reports
unit attention for disk resize.

trace

Added spdk_trace_create_tpoint_group_mask to return tracepoint group mask from
a tracepoint group name.

Added trace_set_tpoint_mask and trace_clear_tpoint_mask RPC to allow enabling
individual traces.

util

Added spdk_ioviter_first and spdk_ioviter_next to iterate over two iovecs and
yield pointers to common length segments.

Don't miss a new spdk release

NewReleases is sending notifications on new releases.