nvme: add support for streams and directives write-stream.8
authorJens Axboe <axboe@kernel.dk>
Mon, 19 Jun 2017 16:54:02 +0000 (10:54 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 19 Jun 2017 16:54:02 +0000 (10:54 -0600)
commit893e81c9ed9016e74fb577f2e1dcfd24ddfca2ae
treeee7df35a1771fbd2e60f7b863e8faf9fb93b0803
parent9a6e3b0fd3cc97cfd0e524cc53b81d7854515dde
nvme: add support for streams and directives

This adds support for Directives in NVMe, particular for the Streams
directive. Support for Directives is a new feature in NVMe 1.3. It
allows a user to pass in information about where to store the data, so
that it the device can do so most effiently. If an application is
managing and writing data with different life times, mixing differently
retentioned data onto the same locations on flash can cause write
amplification to grow. This, in turn, will reduce performance and life
time of the device.

We default to allocating 4 streams, controller wide, so we can use them
on all name spaces. This is configurable with the 'streams' module
parameter. If a write stream is set in a write, flag is as such before
sending it to the device.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
include/linux/nvme.h