[PATCH 0/5] Protection information support for xnvme ioengine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

-- 
2.25.1





[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux