Spdk/examples/nvme
Niklas Cassel 17ef8ec9ac examples/nvme_fio_plugin: add support for zone append
Now when we have support for spdk_nvme_zns_zone_append() and
spdk_nvme_zns_zone_appendv(), hook them up in the nvme fio plugin.

Note that fio itself does not have support for zone append,
since unlike SPDK, there is no user facing zone append API in
Linux. Therefore, this new option simply replaces writes with
zone appends in the SPDK fio backend.

This is however still useful for the following reasons:
-Provides a way to test zone append in SPDK.
-By using zone append, we can test with iodepth > 1.

With regular writes, the user can only specify iodepth=1.
This is because for zone namespaces, writes have to target
the write pointer. Having more than one write in flight, per
zone, will lead to I/O errors.

In Linux, it is possible to use fio with iodepth > 1
on zoned namespaces, simply because of the mq-deadline
scheduler, which throttles writes such that there is only
one write in flight, per zone, even if user space has
queued up more.

Since a user might not want to use zone append unconditionally,
even on a namespace that supports it, make this an option
rather than enabling it unconditionally.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Change-Id: I028b79f6445bc63b68c97d1370c6f8139779666d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6330
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-02-17 10:17:22 +00:00
..
abort examples: use "main" instead of "master" 2020-12-03 09:41:07 +00:00
arbitration examples: use "main" instead of "master" 2020-12-03 09:41:07 +00:00
cmb_copy nvme/cmb_copy: disable submission queue in CMB 2020-04-22 09:18:22 +00:00
fio_plugin examples/nvme_fio_plugin: add support for zone append 2021-02-17 10:17:22 +00:00
hello_world examples/nvme/hello_world: call exit() on read error 2020-10-23 13:47:09 +00:00
hotplug build: fix duplicate spdk.common.mk includes 2019-05-22 14:51:01 +00:00
identify nvme: use spdk_nvme_zns_ns_get_zone_size_sectors() where appropriate 2021-02-17 10:17:22 +00:00
nvme_manage examples: Use PRId64 for portability 2020-11-20 11:01:11 +00:00
perf nvme/perf: Add missing key (ns) of Transport ID in perf help 2021-02-04 08:39:51 +00:00
reconnect NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00
Makefile example/nvme: add application to test NVMe I/O abort 2020-07-17 07:21:13 +00:00