Spdk/module/bdev
Niklas Cassel 059dcf1da1 bdev/nvme: add support for zoned namespaces
Add support for zoned namespaces in the bdev/nvme module.

Query the namespace type, and if a zoned namespace is found, set the
bdev struct members needed by the bdev_zone.h APIs.

Note that while vbdev_zone_block and bdev_ocssd have zone locks,
bdev/nvme does not need any kind of zone lock, because NVMe ZNS
supports append natively.

The whole point of the zone append command is that you don't need any
locks, even when having multiple writers, since the drive will return
back the Assigned LBA where the blocks were actually written.

If a SPDK application will utilize writes instead of zone appends,
the SPDK application itself will need a per zone lock in order to
make sure that there is only one outstanding write.

Adding zone locks in bdev/nvme would reduce the performance of zone
appends, for no reason at all.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Change-Id: Ibacdb9b6e839624aba869c9949231343db5914be
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6911
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: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-03-29 10:17:45 +00:00
..
aio so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
compress so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
crypto so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
delay so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
error so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
ftl so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
gpt lib/bdev: move to spdk_bdev_part_base_construct_ext() 2021-03-09 08:54:53 +00:00
iscsi so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
lvol so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
malloc bdev/malloc: check block size when creating a new block device 2021-03-01 12:07:09 +00:00
null so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme bdev/nvme: add support for zoned namespaces 2021-03-29 10:17:45 +00:00
ocf ocf/rpc: Add bdev_ocf_set_cache_mode method 2021-03-18 14:39:09 +00:00
passthru so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
pmem so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
raid bdev/raid: remove deprecated parameter strip_size 2021-03-29 07:41:09 +00:00
rbd bdev/rbd: Change some function type from int to void 2021-03-12 08:36:11 +00:00
split splite/vbdev_split: Free base part bdev on the error path. 2021-03-02 08:02:58 +00:00
uring so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
virtio so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
zone_block so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile bdev: move bdev_rpc library contents 2020-09-25 11:43:42 +00:00