changelog: clean up and fill out v17.10 details

Change-Id: Iafe021f5d7e38bfea8cefd297439e33efe8a1e4e
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/383495
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Daniel Verkamp 2017-10-23 11:07:48 -07:00
parent fecd574bd5
commit c7e322fe02

View File

@ -1,24 +1,26 @@
# Changelog # Changelog
## v17.10: (Upcoming Release) ## v17.10: Logical Volumes
### New dependency ### New dependencies
libuuid added as new depenency for logical volumes. libuuid was added as new dependency for logical volumes.
libnuma is now required unconditionally now that the DPDK submodule has been updated to DPDK 17.08.
### Block Device Abstraction Layer (bdev) ### Block Device Abstraction Layer (bdev)
An [fio](http://github.com/axboe/fio) plugin was added that can route An [fio](http://github.com/axboe/fio) plugin was added that can route
I/O to the bdev layer. See the [plugin documentation](https://github.com/spdk/spdk/blob/master/examples/bdev/fio_plugin/README.md) I/O to the bdev layer. See the [plugin documentation](https://github.com/spdk/spdk/tree/master/examples/bdev/fio_plugin/)
for more information. for more information.
spdk_bdev_unmap() was modified to take an offset and a length in bytes as spdk_bdev_unmap() was modified to take an offset and a length in bytes as
arguments instead of requiring the user to provide an array of SCSI arguments instead of requiring the user to provide an array of SCSI
unmap descriptors. This limits unmaps to a single contiguous range. unmap descriptors. This limits unmaps to a single contiguous range.
spdk_bdev_write_zeroes() was introduced as an alternative to spdk_bdev_unmap(). spdk_bdev_write_zeroes() was introduced. It ensures that all specified blocks will be zeroed out.
It ensures that all unmapped blocks will be zeroed out. This function is If a block device doesn't natively support a write zeroes command, the bdev layer emulates it using
currently only supported by NVMe block devices. write commands.
New API functions that accept I/O parameters in units of blocks instead of bytes New API functions that accept I/O parameters in units of blocks instead of bytes
have been added: have been added:
@ -27,6 +29,9 @@ have been added:
- spdk_bdev_write_zeroes_blocks() - spdk_bdev_write_zeroes_blocks()
- spdk_bdev_unmap_blocks() - spdk_bdev_unmap_blocks()
The bdev layer now handles temporary out-of-memory I/O failures internally by queueing the I/O to be
retried later.
### Linux AIO bdev ### Linux AIO bdev
The AIO bdev now allows the user to override the auto-detected block size. The AIO bdev now allows the user to override the auto-detected block size.
@ -40,7 +45,7 @@ into account when splitting I/O requests.
The HotplugEnable option in `[Nvme]` sections of the configuration file is now The HotplugEnable option in `[Nvme]` sections of the configuration file is now
"No" by default. It was previously "Yes". "No" by default. It was previously "Yes".
The NVMe library now includes a function spdk_nvme_ns_get_ctrlr which returns the The NVMe library now includes a spdk_nvme_ns_get_ctrlr() function which returns the
NVMe Controller associated with a given namespace. NVMe Controller associated with a given namespace.
The NVMe library now allows the user to specify a host identifier when attaching The NVMe library now allows the user to specify a host identifier when attaching
@ -49,10 +54,13 @@ as well as in the NVMe-oF Connect command. The default host ID is also now a
randomly-generated UUID, and the default host NQN uses the host ID to generate randomly-generated UUID, and the default host NQN uses the host ID to generate
a UUID-based NQN. a UUID-based NQN.
spdk_nvme_connect() was added to allow the user to connect directly to a single
NVMe or NVMe-oF controller.
### NVMe-oF Target (nvmf_tgt) ### NVMe-oF Target (nvmf_tgt)
The NVMe-oF target no longer requires any in capsule data buffers to run, and The NVMe-oF target no longer requires any in-capsule data buffers to run, and
the feature is now entirely optional. Previously, at least 4KiB in capsule the feature is now entirely optional. Previously, at least 4 KiB in-capsule
data buffers were required. data buffers were required.
NVMe-oF subsytems have a new configuration option, AllowAnyHost, to control NVMe-oF subsytems have a new configuration option, AllowAnyHost, to control
@ -76,39 +84,45 @@ makes it explicit that the default is being used.
### Blobstore ### Blobstore
The blobstore super block now contains a bstype field to identify the type of the blobstore.
Existing code should be updated to fill out bstype when calling spdk_bs_init() and spdk_bs_load().
spdk_bs_destroy() was added to allow destroying blobstore on device spdk_bs_destroy() was added to allow destroying blobstore on device
with an initialized blobstore. with an initialized blobstore.
spdk_bs_io_readv_blob() and spdk_bs_io_writev_blob() were added to enable spdk_bs_io_readv_blob() and spdk_bs_io_writev_blob() were added to enable
scattered payloads. scattered payloads.
Add a CLI tool for blobstore allowing basic operations through either command A CLI tool for blobstore has been added, allowing basic operations through either command
line or shell interface. line or shell interface. See the [blobcli](https://github.com/spdk/spdk/tree/master/examples/blob/cli)
documentation for more details.
### Event Framework ### Event Framework
The ability to set a thread name, previously only used by the reactor code, is The ability to set a thread name, previously only used by the reactor code, is
now part of the `spdk_thread_allocate()` API. Users may specify a thread name now part of the spdk_thread_allocate() API. Users may specify a thread name
which will show up in tools like `gdb`. which will show up in tools like `gdb`.
### Log ### Log
The API spdk_trace_dump() now takes a new parameter to allow the caller to The spdk_trace_dump() function now takes a new parameter to allow the caller to
specify stdout or stderr for example. specify an output file handle (stdout or stderr, for example).
### Logical Volumes ### Logical Volumes
Logical volumes library built on top of SPDK blobstore has been added. Logical volumes library built on top of SPDK blobstore has been added.
It is possible create logical volumes on top of other devices using RPC. It is possible to create logical volumes on top of other devices using RPC.
See [logical volumes](http://www.spdk.io/doc/lvol.html) documentation for more information. See the [logical volumes](http://www.spdk.io/doc/lvolstore.html) documentation for more information.
### Persistent Memory ### Persistent Memory
New bdev type has been added. Persistent memory block device is built on top of libpmemblk. A new persistent memory bdev type has been added.
It is possible create pmem devices on top of pmem pool files using RPC. The persistent memory block device is built on top of [libpmemblk](http://pmem.io/nvml/libpmemblk/).
It is possible to create pmem devices on top of pmem pool files using RPC.
See the [Pmem Block Device](http://www.spdk.io/doc/bdev.html#bdev_config_pmem) documentation for more information.
See [Block Device](http://www.spdk.io/doc/bdev.html) documentation for more information.
## v17.07: Build system improvements, userspace vhost-blk target, and GPT bdev ## v17.07: Build system improvements, userspace vhost-blk target, and GPT bdev