diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..fecb8de9b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,63 @@ +Changelog +========= + +Upcoming release +---------------- + +This release includes a general API cleanup, including renaming all declarations +in public headers to include a `spdk` prefix to prevent namespace clashes with +user code. + +- NVMe + - The `nvme_attach()` API was reworked into a new probe/attach model, which + moves device detection into the NVMe library. The new API also allows + parallel initialization of NVMe controllers, providing a major reduction in + startup time when using multiple controllers. + - Added support for the Write Zeroes command. + - `examples/nvme/perf` can now report I/O command latency from the + the controller's viewpoint using the Intel vendor-specific read/write latency + log page. + - Added namespace reservation command support, which can be used to coordinate + sharing of a namespace between multiple hosts. + - Added hardware SGL support, which enables use of scattered buffers that + don't conform to the PRP list alignment and length requirements on supported + NVMe controllers. +- IOAT + - The DMA block fill feature is now exposed via the `ioat_submit_fill()` + function. This is functionally similar to `memset()`, except the memory is + filled with an 8-byte repeating pattern instead of a single byte like memset. +- PCI + - Added support for using DPDK for PCI device mapping in addition to the + existing libpciaccess option. + - The PCI library API was made more generic to abstract away differences + between the underlying PCI access implementations. + +v1.2.0: IOAT user-space driver +------------------------------ + +This release adds a user-space driver with support for the Intel I/O Acceleration Technology (I/OAT, also known as "Crystal Beach") DMA offload engine. + +- IOAT + - New user-space driver supporting DMA memory copy offload + - Example programs `ioat/perf` and `ioat/verify` + - Kernel-mode DMA engine test driver `kperf` for performance comparison +- NVMe + - Per-I/O flags for Force Unit Access (FUA) and Limited Retry + - Public API for retrieving log pages + - Reservation register/acquire/release/report command support + - Scattered payload support - an alternate API to provide I/O buffers via a sequence of callbacks + - Declarations and `nvme/identify` support for Intel SSD DC P3700 series vendor-specific log pages and features +- Updated to support DPDK 2.2.0 + + +v1.0.0: NVMe user-space driver +------------------------------ + +This is the initial open source release of the Storage Performance Development Kit (SPDK). + +Features: +- NVMe user-space driver +- NVMe example programs + - `examples/nvme/perf` tests performance (IOPS) using the NVMe user-space driver + - `examples/nvme/identify` displays NVMe controller information in a human-readable format +- Linux and FreeBSD support diff --git a/README.md b/README.md index 82a0737fa..8abae36a5 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ Documentation [Porting Guide](PORTING.md) +[Changelog](CHANGELOG.md) + Prerequisites =============