From: Max Gurtovoy <mgurtovoy@nvidia.com>
To: Keith Busch <kbusch@kernel.org>
Cc: Chao Leng <lengchao@huawei.com>,
linux-nvme@lists.infradead.org, hch@lst.de, sagi@grimberg.me
Subject: Re: [PATCH] nvme: add DIX support for nvme-rdma
Date: Tue, 30 Aug 2022 02:47:32 +0300 [thread overview]
Message-ID: <f3fae5fb-0c98-4b40-ea7f-3a7cf20ebc61@nvidia.com> (raw)
In-Reply-To: <YwzWyrFahUlqs2fx@kbusch-mbp.dhcp.thefacebook.com>
On 8/29/2022 6:10 PM, Keith Busch wrote:
> On Mon, Aug 29, 2022 at 05:56:39PM +0300, Max Gurtovoy wrote:
>> On 8/29/2022 4:16 PM, Chao Leng wrote:
>>> On 2022/8/29 18:43, Max Gurtovoy wrote:
>>>> On 8/29/2022 11:12 AM, Chao Leng wrote:
>>>>
>>>> You can mention that also in iser, if supported, the default is to
>>>> use IP_CHECKSUM for DIX and not CRC.
>>> 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.
>>
>> If now its defined as DIX == IP_CHECKSUM and DIF == CRC please mention it
>> somehow in the commit message.
> Where is this coming from? The NVMe command set spec says this is the
> difference between DIF and DIX:
>
> The primary difference between these two mechanisms is the location of the
> protection information. In DIF, the protection information is contiguous with
> the logical block data and creates an extended logical block, while in DIX,
> the protection information is stored in a separate buffer.
>
> Regarding CRC vs IP Checksum, the spec also says this:
>
> In addition to a CRC-16, DIX also specifies an optional IP checksum that is
> not supported by the NVM Express interface.
Not so clear what does that mean.
>
> So DIX support doesn't imply IP checksum. Even if the host device can support
> it, the target device can not report it uses that guard type.
Right.
But we don't send the IP checksum guard on the wire.
The implementation is only used for integrity between host buffer <-->
local HBA.
And the fabrics support only DIF (extended logical block) so IP checksum
guard is not allowed.
So, I suggest re-write the commit message according to the NVMe spec
(that defined DIX and DIF differently than SCSI) + add perf numbers for
4k, 8k, 16k, 32k, 64k, 128k, 258k IO read + IO write.
Or maybe mention only the IP checksum that become default, if supported,
for offloaded integrity between host buffer <--> local HBA (As we do in
iSER).
next prev parent reply other threads:[~2022-08-29 23:47 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 [this message]
2022-08-30 12:18 ` Chao Leng
2022-08-30 14:49 ` Keith Busch
2022-08-30 2:38 ` Martin K. Petersen
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=f3fae5fb-0c98-4b40-ea7f-3a7cf20ebc61@nvidia.com \
--to=mgurtovoy@nvidia.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=lengchao@huawei.com \
--cc=linux-nvme@lists.infradead.org \
--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