On 2/13/24 12:21 PM, Vincent Fu wrote: > On 2/13/24 10:33, Ankit Kumar wrote: >> This series enables protection information support with xnvme ioengine. >> The support is provided with the kernel backends that can handle >> passthrough commands via nvme character device (/dev/ngXnY), or with >> user space nvme drivers such as SPDK and libvfn. >> >> The initial patch adds support for metadata buffer. As we are unaware >> of metadata size during metadata buffer allocation, we provide an >> option md_per_io_size. This must be used to specify metadata size for >> single IO, if namespace is formatted with separate metadata buffer. >> >> This then enables the protection information support with and without >> PRACT bit set for both DIF and DIX cases. The support only covers 16-bit >> and 64-bit guard protection information format, without storage tags. >> >> For the sake of consistency metadata and protection information specific >> options are the same as the ones used by io_uring_cmd ioengine and SPDK's >> external ioengine. >> >> Ankit Kumar (5): >> engines/xnvme: allocate iovecs only if vectored I/O is enabled >> engines/xnvme: add support for metadata >> engines:xnvme: add support for end to end data protection >> engines/xnvme: add checks for verify, block size and metadata size >> examples: add PI example with xnvme ioengine >> >> HOWTO.rst | 10 +- >> configure | 2 +- >> engines/xnvme.c | 331 +++++++++++++++++++++++++++++++++++++++--- >> examples/xnvme-pi.fio | 53 +++++++ >> examples/xnvme-pi.png | Bin 0 -> 71285 bytes >> fio.1 | 10 +- >> 6 files changed, 378 insertions(+), 28 deletions(-) >> create mode 100644 examples/xnvme-pi.fio >> create mode 100644 examples/xnvme-pi.png >> > > These patches look good to me. I'll wait a bit in case Jens or anyone > else has feedback. Looks OK to me: Reviewed-by: Jens Axboe <axboe@xxxxxxxxx> -- Jens Axboe