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> |
||
---|---|---|
.. | ||
bdev_zone.c | ||
bdev.c | ||
compress.c | ||
crypto.c | ||
gpt | ||
mt | ||
nvme | ||
part.c | ||
pmem | ||
raid | ||
scsi_nvme.c | ||
vbdev_lvol.c | ||
vbdev_zone_block.c | ||
Makefile |