Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: Max Gurtovoy <mgurtovoy@nvidia.com>
Cc: Chao Leng <lengchao@huawei.com>,
	linux-nvme@lists.infradead.org, hch@lst.de, sagi@grimberg.me,
	kbusch@kernel.org
Subject: Re: [PATCH] nvme: add DIX support for nvme-rdma
Date: Mon, 29 Aug 2022 22:38:28 -0400	[thread overview]
Message-ID: <yq18rn6qxgl.fsf@ca-mkp.ca.oracle.com> (raw)
In-Reply-To: <ddc4d332-2a86-af1b-6627-547673c44721@nvidia.com> (Max Gurtovoy's message of "Mon, 29 Aug 2022 17:56:39 +0300")


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


  parent reply	other threads:[~2022-08-30  2:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-29  8:12 [PATCH] nvme: add DIX support for nvme-rdma Chao Leng
2022-08-29  9:02 ` Sagi Grimberg
2022-08-29 10:43 ` Max Gurtovoy
2022-08-29 13:16   ` Chao Leng
2022-08-29 14:56     ` Max Gurtovoy
2022-08-29 15:10       ` Keith Busch
2022-08-29 23:47         ` Max Gurtovoy
2022-08-30 12:18         ` Chao Leng
2022-08-30 14:49           ` Keith Busch
2022-08-30  2:38       ` Martin K. Petersen [this message]
2022-08-30 12:21         ` Chao Leng
2022-09-05  6:37           ` Christoph Hellwig
2022-09-06  2:13             ` Chao Leng
2022-09-06  6:59               ` Christoph Hellwig
2022-09-06  9:34                 ` Max Gurtovoy
2022-09-06  9:35                   ` Christoph Hellwig
2022-09-06 10:05                     ` Max Gurtovoy
2022-09-06 10:13                 ` Chao Leng
2022-08-30 12:15       ` Chao Leng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=yq18rn6qxgl.fsf@ca-mkp.ca.oracle.com \
    --to=martin.petersen@oracle.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=lengchao@huawei.com \
    --cc=linux-nvme@lists.infradead.org \
    --cc=mgurtovoy@nvidia.com \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox