Reorganize 18.07 Changelog entries.
Fill in some missing things based on the diff Change-Id: I5dadd6ac31dac7e9cf483c514080f88b1429a405 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/420922 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Seth Howell <seth.howell5141@gmail.com>
This commit is contained in:
parent
121d632c02
commit
812a38d497
150
CHANGELOG.md
150
CHANGELOG.md
@ -2,60 +2,119 @@
|
|||||||
|
|
||||||
## v18.07: (Upcoming Release)
|
## v18.07: (Upcoming Release)
|
||||||
|
|
||||||
|
### bdev
|
||||||
|
|
||||||
|
A new public header file bdev_module.h has been introduced to facilitate the
|
||||||
|
development of new bdev modules. This header includes an interface for the
|
||||||
|
spdk_bdev_part and spdk_bdev_part_base objects to enable the creation of
|
||||||
|
multiple virtual bdevs on top of a single base bdev and should act as the
|
||||||
|
primary API for module authors.
|
||||||
|
|
||||||
|
spdk_bdev_get_opts() and spdk_bdev_set_opts() were added to set bdev-wide
|
||||||
|
options.
|
||||||
|
|
||||||
|
A mechanism for handling out of memory condition errors (ENOMEM) returned from
|
||||||
|
I/O submission requests at the bdev layer has been added. See
|
||||||
|
spdk_bdev_queue_io_wait().
|
||||||
|
|
||||||
|
The spdk_bdev_get_io_stat() function now returns cumulative totals instead of
|
||||||
|
resetting on each call. This allows multiple callers to query I/O statistics
|
||||||
|
without conflicting with each other. Existing users will need to adjust their
|
||||||
|
code to record the previous I/O statistics to calculate the delta between calls.
|
||||||
|
|
||||||
|
I/O queue depth tracking and samples options have been added. See
|
||||||
|
spdk_bdev_get_qd(), spdk_bdev_get_qd_sampling_period(), and
|
||||||
|
spdk_bdev_set_qd_sampling_period().
|
||||||
|
|
||||||
### RAID module
|
### RAID module
|
||||||
A new bdev module called "raid" has been added as experimental module which
|
A new bdev module called "raid" has been added as experimental module which
|
||||||
aggregates underlying nvme bdevs and expose a single raid bdev to upper bdev
|
aggregates underlying NVMe bdevs and exposes a single raid bdev. Please note
|
||||||
layers. Over this LVS/LVOL can be created as per use-cases and they can be
|
that vhost will not work with this module because it does not yet have support
|
||||||
exposed to NVMe-oF subsystems. Please note that vhost will not work with RAID
|
for multi-element io vectors.
|
||||||
module as RAID module does not support multipe IOV Vectors yet.
|
|
||||||
|
|
||||||
### Log
|
### Log
|
||||||
|
|
||||||
The debug log component flag has been renamed from `-t` to `-L` to prevent confusion
|
The debug log component flag available on several SPDK applications has been
|
||||||
with tracepoints and to allow the option to be added to tools that already use `-t`
|
renamed from `-t` to `-L` to prevent confusion with tracepoints and to allow the
|
||||||
to mean something else.
|
option to be added to tools that already use `-t` to mean something else.
|
||||||
|
|
||||||
|
### Blobstore
|
||||||
|
|
||||||
|
A new function, spdk_bs_dump(), has been added that dumps all of the contents of
|
||||||
|
a blobstore to a file pointer. This includes the metadata and is very useful for
|
||||||
|
debugging.
|
||||||
|
|
||||||
|
Two new operations have been added for thin-provisioned blobs.
|
||||||
|
spdk_bs_inflate_blob() will allocate clusters for all thinly provisioned regions
|
||||||
|
of the blob and populate them with the correct data by reading from the backing
|
||||||
|
blob(s). spdk_bs_blob_decouple_parent() works similarly, but will only allocate
|
||||||
|
clusters that correspond to data in the blob's immediate parent. Clusters
|
||||||
|
allocated to grandparents or that aren't allocated at all will remain
|
||||||
|
thin-provisioned.
|
||||||
|
|
||||||
|
### BlobFS
|
||||||
|
|
||||||
|
Changed the return type of spdk_file_truncate() from void to int to allow the
|
||||||
|
propagation of `ENOMEM` errors.
|
||||||
|
|
||||||
### NVMe Driver
|
### NVMe Driver
|
||||||
|
|
||||||
New API function spdk_nvme_qpair_add_cmd_error_injection() and
|
The new API functions spdk_nvme_qpair_add_cmd_error_injection() and
|
||||||
spdk_nvme_qpair_remove_cmd_error_injection() have been added for NVMe error emulation,
|
spdk_nvme_qpair_remove_cmd_error_injection() have been added for NVMe error
|
||||||
users can set specified command with specified error status for error emulation.
|
emulation. Users can set a specified command to fail with a particular error
|
||||||
|
status.
|
||||||
|
|
||||||
Change the name `timeout_sec` parameter to `timeout_us` in API function
|
Changed the name `timeout_sec` parameter to `timeout_us` in
|
||||||
spdk_nvme_ctrlr_register_timeout_callback, and also change the type from uint32_t to
|
spdk_nvme_ctrlr_register_timeout_callback(), and also changed the type from
|
||||||
uint64_t. This will give users more fine-grained control over the timeout period for
|
uint32_t to uint64_t. This will give users more fine-grained control over the
|
||||||
calling callback functions.
|
timeout period.
|
||||||
|
|
||||||
|
Basic support for Open Channel SSDs was added. See nvme_ocssd.h
|
||||||
|
|
||||||
|
### NVMe Over Fabrics
|
||||||
|
|
||||||
|
The spdk_nvmf_tgt_destroy() function is now asynchronous and takes a callback
|
||||||
|
as a parameter.
|
||||||
|
|
||||||
|
spdk_nvmf_qpair_disconnect() was added to allow the user to disconnect qpairs.
|
||||||
|
|
||||||
|
spdk_nvmf_subsystem_get_max_namespaces() was added to query the maximum allowed
|
||||||
|
number of namespaces for a given subsystem.
|
||||||
|
|
||||||
### Build System
|
### Build System
|
||||||
|
|
||||||
The build system now generates a combined shared library (libspdk.so) that may be used
|
The build system now generates a combined shared library (libspdk.so) that may
|
||||||
in place of the individual static libraries (libspdk_*.a).
|
be used in place of the individual static libraries (libspdk_*.a). The combined
|
||||||
The combined library includes all components of SPDK and is intended to make linking
|
library includes all components of SPDK and is intended to make linking against
|
||||||
against SPDK easier.
|
SPDK easier. The static libraries are also still provided for users that prefer
|
||||||
The static libraries are also still provided for users that prefer to link only the
|
to link only the minimal set of components required.
|
||||||
minimal set of components required.
|
|
||||||
|
|
||||||
A new configure option was added `--with-crypto` that, when set, will build the crypto
|
### git pre-commit and pre-push hooks
|
||||||
vbdev as well as its dependencies.
|
|
||||||
|
The pre-commit hook will run `scripts/check_format.sh` and verify there are no
|
||||||
|
formating errors before allowing `git commit` to run. The pre-push hook runs
|
||||||
|
`make CONFIG_WERROR=y` with and without `CONFIG_DEBUG=y` using both the gcc and
|
||||||
|
clang compiler before allowing `git push` to run. Following each DEBUG build
|
||||||
|
`test/unit/unittest.sh` is run and verified. Results are recorded in the
|
||||||
|
`make.log` file.
|
||||||
|
|
||||||
|
To enable type: 'git config core.hooksPath .githooks'. To override after
|
||||||
|
configuration use the `git --no-verify` flag.
|
||||||
|
|
||||||
### RPC
|
### RPC
|
||||||
|
|
||||||
The `start_nbd_disk` RPC method now returns the path to the kernel NBD device node
|
The `start_nbd_disk` RPC method now returns the path to the kernel NBD device node
|
||||||
rather than always returning `true`.
|
rather than always returning `true`.
|
||||||
|
|
||||||
### Bdev
|
### DPDK 18.05
|
||||||
|
|
||||||
The spdk_bdev_get_io_stat() function now returns cumulative totals instead of resetting
|
The DPDK submodule has been rebased on the DPDK 18.05 release. DPDK 18.05 supports
|
||||||
on each call. This allows multiple callers to query I/O statistics without conflicting
|
dynamic memory allocation, but due to some issues found after the DPDK 18.05 release,
|
||||||
with each other. Existing users will need to adjust their code to record the previous
|
that support is not enabled for SPDK 18.07. Therefore, SPDK 18.07 will continue to use
|
||||||
I/O statistics to calculate the delta between calls.
|
the legacy memory allocation model. The plan is to enable dynamic memory allocation
|
||||||
|
after the DPDK 18.08 release which should fix these issues.
|
||||||
|
|
||||||
A new public header file bdev_module.h has been introduced to facilitate the development
|
### Environment Abstraction Layer and Event Framework
|
||||||
of new bdev modules. This header includes an interface for the spdk_bdev_part and
|
|
||||||
spdk_bdev_part_base objects to enable the creation of multiple virtual bdevs on top of a
|
|
||||||
single base bdev.
|
|
||||||
|
|
||||||
### Env
|
|
||||||
|
|
||||||
The spdk_mem_map_translate() function now takes a size parameter to indicate the size of
|
The spdk_mem_map_translate() function now takes a size parameter to indicate the size of
|
||||||
the memory region. This can be used by environment implementations to validate the
|
the memory region. This can be used by environment implementations to validate the
|
||||||
@ -65,21 +124,8 @@ The I/O Channel implementation has been moved to its own library - lib/thread. T
|
|||||||
public API that was previously in spdk/io_channel.h is now in spdk/thread.h The
|
public API that was previously in spdk/io_channel.h is now in spdk/thread.h The
|
||||||
file spdk/io_channel.h remains and includes spdk/thread.h.
|
file spdk/io_channel.h remains and includes spdk/thread.h.
|
||||||
|
|
||||||
### NVMe Over Fabrics
|
spdk_reactor_get_tsc_stats was added to return interesting statistics for each
|
||||||
|
reactor.
|
||||||
The spdk_nvmf_tgt_destroy() function is now asynchronous and takes a callback
|
|
||||||
as a parameter.
|
|
||||||
|
|
||||||
### git pre-commit and pre-push hooks
|
|
||||||
|
|
||||||
The pre-commit hook will run `scripts/check_format.sh` and verify there are no formating
|
|
||||||
errors before allowing `git commit` to run. The pre-push hook runs `make CONFIG_WERROR=y`
|
|
||||||
with and without `CONFIG_DEBUG=y` using both the gcc and clang compiler before allowing
|
|
||||||
`git push` to run. Following each DEBUG build `test/unit/unittest.sh` is run and verified.
|
|
||||||
Results are recorded in the `make.log` file.
|
|
||||||
|
|
||||||
To enable type: 'git config core.hooksPath .githooks'. To override after configuration use
|
|
||||||
the `git --no-verify` flag.
|
|
||||||
|
|
||||||
### IOAT
|
### IOAT
|
||||||
|
|
||||||
@ -92,14 +138,6 @@ now deprecated and will be removed in a future release.
|
|||||||
Change the return type of spdk_file_truncate from void to int. The purpose is to catch
|
Change the return type of spdk_file_truncate from void to int. The purpose is to catch
|
||||||
the `NOMEM` error condition.
|
the `NOMEM` error condition.
|
||||||
|
|
||||||
### DPDK 18.05
|
|
||||||
|
|
||||||
The DPDK submodule has been rebased on the DPDK 18.05 release. DPDK 18.05 supports
|
|
||||||
dynamic memory allocation, but due to some issues found after the DPDK 18.05 release,
|
|
||||||
that support is not enabled for SPDK 18.07. Therefore, SPDK 18.07 will continue to use
|
|
||||||
the legacy memory allocation model. The plan is to enable dynamic memory allocation
|
|
||||||
after the DPDK 18.08 release which should fix these issues.
|
|
||||||
|
|
||||||
## v18.04: Logical Volume Snapshot/Clone, iSCSI Initiator, Bdev QoS, VPP Userspace TCP/IP
|
## v18.04: Logical Volume Snapshot/Clone, iSCSI Initiator, Bdev QoS, VPP Userspace TCP/IP
|
||||||
|
|
||||||
### vhost
|
### vhost
|
||||||
|
Loading…
Reference in New Issue
Block a user