changelog: add bdev QoS and iSCSI VPP support

Also tweak some wording and add other minor feature additions.

Change-Id: I37f4c97c260e55c62b112b72fb47a316772da3f7
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/409223
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Daniel Verkamp 2018-04-26 12:46:22 -07:00
parent 409353a23e
commit 145b2f7bd3

View File

@ -1,6 +1,6 @@
# Changelog # Changelog
## v18.04: (Upcoming Release) ## v18.04: Logical Volume Snapshot/Clone, iSCSI Initiator, Bdev QoS, VPP Userspace TCP/IP
### vhost ### vhost
@ -9,9 +9,21 @@ DPDK rte_vhost vulnerability [CVE-2018-1059](http://cve.mitre.org/cgi-bin/cvenam
Please see this [security advisory](https://access.redhat.com/security/cve/cve-2018-1059) Please see this [security advisory](https://access.redhat.com/security/cve/cve-2018-1059)
for additional information on the DPDK vulnerability. for additional information on the DPDK vulnerability.
Workarounds have been added to ensure vhost compatibility with QEMU 2.12.
EXPERIMENTAL: Support for vhost-nvme has been added to the SPDK vhost target. See the
[vhost documentation](http://www.spdk.io/doc/vhost.html) for more details.
### Unified Target Application
A new unified SPDK target application, `spdk_tgt`, has been added. This application combines the
functionality of several existing SPDK applications, including the iSCSI target, NVMe-oF target,
and vhost target. The new application can be managed through the existing configuration file and
[JSON-RPC](http://www.spdk.io/doc/jsonrpc.html) methods.
### Env ### Env
Add wrapper for DPDK rte_mempool_get_bulk() via spdk_mempool_get_bulk(). spdk_mempool_get_bulk() has been added to wrap DPDK rte_mempool_get_bulk().
New memory management functions spdk_malloc(), spdk_zmalloc(), and spdk_free() have been added. New memory management functions spdk_malloc(), spdk_zmalloc(), and spdk_free() have been added.
These new functions have a `flags` parameter that allows the user to specify whether the allocated These new functions have a `flags` parameter that allows the user to specify whether the allocated
@ -21,13 +33,20 @@ eventually be deprecated and removed.
### Bdev ### Bdev
Add new optional bdev module interface function, init_complete, to notify bdev modules A new optional bdev module interface function, `init_complete`, has been added to notify bdev modules
when the bdev subsystem initialization is complete. Useful for virtual bdevs that require when the bdev subsystem initialization is complete. This may be useful for virtual bdevs that require
notification that the set of initialization examine() calls is complete. notification that the set of initialization examine() calls is complete.
The bdev layer now allows modules to provide an optional per-bdev UUID, which can be retrieved with
the spdk_bdev_get_uuid() function.
Enforcement of IOPS limits for quality of service (QoS) has been added to the bdev layer. See the
[set_bdev_qos_limit_iops](http://www.spdk.io/doc/jsonrpc.html#rpc_set_bdev_qos_limit_iops) documentation
for more details.
### RPC ### RPC
The Rpc configuration file section, which was deprecated in v18.01, has been removed. The `[Rpc]` configuration file section, which was deprecated in v18.01, has been removed.
Users should switch to the `-r` command-line parameter instead. Users should switch to the `-r` command-line parameter instead.
The JSON-RPC server implementation now allows up to 32 megabyte responses, growing as The JSON-RPC server implementation now allows up to 32 megabyte responses, growing as
@ -40,21 +59,22 @@ See the [SPDKCLI](http://www.spdk.io/doc/spdkcli.html) documentation for more de
### NVMe Driver ### NVMe Driver
EXPERIMENTAL: Adds support for WDS and RDS capable CMBs in NVMe controllers. This support is EXPERIMENTAL: Support for WDS and RDS capable CMBs in NVMe controllers has been added. This support is
experimental pending a functional allocator to free and reallocate CMB buffers. experimental pending a functional allocator to free and reallocate CMB buffers.
spdk_nvme_ns_get_uuid() has been added to allow retrieval of per-namespace UUIDs when available. spdk_nvme_ns_get_uuid() has been added to allow retrieval of per-namespace UUIDs when available.
Added spdk_nvme_ctrlr_get_first_active_ns() and spdk_nvme_ctrlr_get_next_active_ns() to iterate New API functions spdk_nvme_ctrlr_get_first_active_ns() and spdk_nvme_ctrlr_get_next_active_ns()
active namespaces and spdk_nvme_ctrlr_is_active_ns() to check if a ns id is active. have been added to iterate active namespaces, as well as spdk_nvme_ctrlr_is_active_ns() to check if
a namespace ID is active.
### NVMe-oF Target ### NVMe-oF Target
Namespaces may now be assigned unique identifiers via new optional "eui64" and "nguid" parameters Namespaces may now be assigned unique identifiers via new optional `eui64` and `nguid` parameters
to the `nvmf_subsystem_add_ns` RPC method. to the `nvmf_subsystem_add_ns` RPC method. Additionally, the NVMe-oF target automatically exposes
the backing bdev's UUID as the namespace UUID when available.
`spdk_nvmf_subsystem_remove_ns` is now asynchronous and requires two additional arguments, cb_fn and cb_arg. spdk_nvmf_subsystem_remove_ns() is now asynchronous and requires a callback to indicate completion.
cb_fn is a function pointer of type spdk_channel_for_each_cpl and cb_arg is a void pointer.
### Blobstore ### Blobstore
@ -84,9 +104,11 @@ and Clones of existing Snapshots.
See the [lvol snapshots](http://www.spdk.io/doc/logical_volumes.html#lvol_snapshots) documentation See the [lvol snapshots](http://www.spdk.io/doc/logical_volumes.html#lvol_snapshots) documentation
for more details. for more details.
Resizing logical volumes is now supported via the `resize_lvol_bdev` RPC method.
### Lib ### Lib
A set of changes were made in the SPDK's lib code altering, A set of changes were made in the SPDK's lib code altering
instances of calls to `exit()` and `abort()` to return a failure instead instances of calls to `exit()` and `abort()` to return a failure instead
wherever reasonably possible. wherever reasonably possible.
@ -106,6 +128,12 @@ The prototype for spdk_poller_fn() has been modified; it now returns a value ind
whether or not the poller did any work. Existing pollers will need to be updated to whether or not the poller did any work. Existing pollers will need to be updated to
return a value. return a value.
### iSCSI Target
The SPDK iSCSI target now supports the fd.io Vector Packet Processing (VPP) framework userspace
TCP/IP stack. See the [iSCSI VPP documentation](http://www.spdk.io/doc/iscsi.html#vpp) for more
details.
### iSCSI initiator ### iSCSI initiator
An iSCSI initiator bdev module has been added to SPDK. This module should be considered An iSCSI initiator bdev module has been added to SPDK. This module should be considered
@ -114,8 +142,8 @@ lib/bdev/iscsi/README.
### PMDK ### PMDK
The persistent memory (PMDK) bdev module is now enabled using --with-pmdk instead of The persistent memory (PMDK) bdev module is now enabled using `--with-pmdk` instead of
--with-nvml. This reflects the renaming of the persistent memory library from NVML to `--with-nvml`. This reflects the renaming of the persistent memory library from NVML to
PMDK. PMDK.
### Virtio Block driver ### Virtio Block driver
@ -128,7 +156,7 @@ more information.
### Virtio with 2MB hugepages ### Virtio with 2MB hugepages
Previous 1GB hugepage limitation has now been lifted. A new '-g' command-line option The previous 1GB hugepage limitation has now been lifted. A new `-g` command-line option
enables SPDK Virtio to work with 2MB hugepages. enables SPDK Virtio to work with 2MB hugepages.
See [2MB hugepages](http://www.spdk.io/doc/virtio.html#virtio_2mb) for details. See [2MB hugepages](http://www.spdk.io/doc/virtio.html#virtio_2mb) for details.