qemu/hw/block
Klaus Jensen bc3a65e992 hw/block/nvme: add metadata support
Add support for metadata in the form of extended logical blocks as well
as a separate buffer of data. The new `ms` nvme-ns device parameter
specifies the size of metadata per logical block in bytes. The `mset`
nvme-ns device parameter controls whether metadata is transfered as part
of an extended lba (set to '1') or in a separate buffer (set to '0',
the default).

Regardsless of the scheme chosen with `mset`, metadata is stored at the
end of the namespace backing block device. This requires the user
provided PRP/SGLs to be walked and "split" into data and metadata
scatter/gather lists if the extended logical block scheme is used, but
has the advantage of not breaking the deallocated blocks support.

Co-authored-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
2021-03-18 12:34:51 +01:00
..
dataplane block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
block.c block: make BlockConf size props 32bit and accept size suffixes 2020-06-17 14:53:40 +02:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c hw/block/fdc: Remove the check_media_rate property 2021-02-20 12:36:19 +01:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
Kconfig hw/block: Introduce TC58128 eeprom Kconfig entry 2021-03-06 16:18:42 +01:00
m25p80.c hw/block: m25p80: Add various ISSI flash information 2021-03-04 09:43:29 -05:00
meson.build hw/block/nvme: introduce nvme-subsys device 2021-03-09 11:00:55 +01:00
nand.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
nvme-ns.c hw/block/nvme: add metadata support 2021-03-18 12:34:51 +01:00
nvme-ns.h hw/block/nvme: add metadata support 2021-03-18 12:34:51 +01:00
nvme-subsys.c hw/block/nvme: assert namespaces array indices 2021-03-18 12:34:51 +01:00
nvme-subsys.h hw/block/nvme: assert namespaces array indices 2021-03-18 12:34:51 +01:00
nvme.c hw/block/nvme: add metadata support 2021-03-18 12:34:51 +01:00
nvme.h hw/block/nvme: assert namespaces array indices 2021-03-18 12:34:51 +01:00
onenand.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
pflash_cfi01.c sysemu: Let VMChangeStateHandler take boolean 'running' argument 2021-03-09 23:13:57 +01:00
pflash_cfi02.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
swim.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
tc58128.c hw/sh4: Add missing license 2021-03-06 16:18:42 +01:00
trace-events hw/block/nvme: add metadata support 2021-03-18 12:34:51 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user-blk.c vhost-user-blk: fix blkcfg->num_queues endianness 2021-03-08 14:55:19 +01:00
virtio-blk.c virtio-blk: Respect discard granularity 2021-03-15 09:48:53 +00:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00
xen-block.c xen-block: fix reporting of discard feature 2021-02-15 15:10:14 +01:00