[PATCH] nvme: add DIX support for nvme-rdma
Martin K. Petersen
martin.petersen at oracle.com
Mon Aug 29 19:38:28 PDT 2022
Max,
>> According to DIX define:DIX = IP_CHECKSUM.
>> To reduce CPU utilization, the end-to-end DIF for SCSI protocols is
>> DIX-DIF when supported by hardware.
>
> From what I re-call DIX was protection between host_buff ->
> host_device and DIF was protection between host_device ->
> target_device.
DIX is a specification for a SCSI host adapter interface which describes
how to put the protection information in a different buffer from the
data buffer.
The optional IP checksum guard tag was an artifact of the DIX efforts
predating CPUs having suitable CRC calculation offload. We simply
couldn't calculate the T10 DIF CRC fast enough on a general purpose CPU
in 2006.
Now that most modern processors (x86_64, ARM) support pclmulqdq or
similar, IP checksum support is pretty much obsolete.
That said, I don't have a problem with permitting IP checksum use for
NVMe RDMA adapters if the hardware is capable. But it would be good to
get some supporting benchmarks. Plus of course a description of the
performance vs. data integrity trade-off wrt. using the weaker IP
checksum.
--
Martin K. Petersen Oracle Linux Engineering
More information about the Linux-nvme
mailing list