On 8/14/23 8:57 AM, Ankit Kumar wrote: > This patch series enables protection information support with io_uring > passthrough (io_uring_cmd) ioengine. This support is added for both DIF > (extended logical blocks) and DIX (separate metadata buffer) cases. > > 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 covers 16-bit and > 64-bit guard protection information format, without storage tags. As > 32-bit guard protection information format mandates minimum 16 bits for > storage tags, it is not considered. > > For the sake of consistency metadata and protection information specific > options are the same as the ones used by SPDK's external ioengine. > > This series also borrows relevant kernel crc16-t10 and NVMe CRC64 > generation files, along with 48-bit accessors for reference tags. > > The NVMe CRC64 table is not generated at build time which is what kernel > does. This will be done in future. Please add an example job file, new options like this should always come with one. -- Jens Axboe