[PATCH] nvme: allow ioctl to submit io command with dif for NVMeoF

Chao Leng lengchao at huawei.com
Wed Aug 3 20:00:23 PDT 2022



On 2022/8/3 23:44, Keith Busch wrote:
> On Wed, Aug 03, 2022 at 05:44:36PM +0800, Chao Leng wrote:
>> If nvme over fabrics support t10dif, NVME_NS_EXT_LBAS and
>> NVME_NS_METADATA_SUPPORTED of ns->features will be set to 1.
>> Now nvme_submit_io do not allow the metadata if NVME_NS_EXT_LBAS of
>> ns->features is setted. Indeed It should allow the metadata if both
>> NVME_NS_EXT_LBAS and NVME_NS_METADATA_SUPPORTED of ns->features are setted.
> 
> I'm not sure. As a passthrough interface, don't you want to set up the host
> buffers with the inline metadata instead of relying on the HBA to splice
> separate ones?
If HBA support t10DIF, we need the HBA to verify the metadata for end-to-end DIF.
So we need set up the metadata separately.
Two scenarios:
1.Test whether the HBA verification meets expectations when specify data and metadata.
2.The user wants to use the capability of end-to-end DIF through IOCTL.
If the HBA does not support T10DIF, Keep the old behavior.
> 
> If you really want to control this kind of thing, it would be better to use
> NVME_IOCTL_IO_CMD instead of NVME_IOCTL_SUBMIT_IO.
NVME_IOCTL_IO_CMD is a universal interface, of course, it can work well.
But nvme-cli do not support customized commands, and it is not friendly to use.
We can use nvme write/read simply, it looks better.
> .
> 



More information about the Linux-nvme mailing list