Spdk/test/unit/lib/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
..
bdev_zone.c bdev/zone: add support for max zone append size 2021-03-29 10:17:45 +00:00
bdev.c lib/bdev: move to spdk_bdev_open_ext() 2021-03-05 08:33:45 +00:00
compress.c modules/crypto/compress: changes to support DPDK mbuf changes 2021-01-15 08:30:01 +00:00
crypto.c modules/crypto/compress: changes to support DPDK mbuf changes 2021-01-15 08:30:01 +00:00
gpt module/bdev_gpt: remove spdk prefix from static/internal functions. 2020-05-15 07:58:03 +00:00
mt test: add some missing stubs 2020-11-02 11:23:21 +00:00
nvme bdev/nvme: add support for zoned namespaces 2021-03-29 10:17:45 +00:00
part.c lib/bdev: move to spdk_bdev_part_base_construct_ext() 2021-03-09 08:54:53 +00:00
pmem remove unneeded spdk_internal/thread.h includes 2020-12-10 14:38:04 +00:00
raid test: Use PRId64 for portability 2020-11-19 09:53:05 +00:00
scsi_nvme.c ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
vbdev_lvol.c bdev/lvol: Pass bdev name instead of bdev pointer to vbdev_lvs_create 2020-10-20 08:52:29 +00:00
vbdev_zone_block.c test: Use PRId64 for portability 2020-11-19 09:53:05 +00:00
Makefile ut/bdev_ocssd: Move bdev_ocssd_ut from bdev directory to bdev/nvme directory 2021-02-09 11:29:53 +00:00