From: Sagi Grimberg <sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: "Nicholas A. Bellinger"
<nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org>,
Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v5 00/10] Introduce Signature feature
Date: Mon, 24 Feb 2014 10:11:48 +0200 [thread overview]
Message-ID: <530AFEC4.6070209@dev.mellanox.co.il> (raw)
In-Reply-To: <1393225299.22656.22.camel-XoQW25Eq2zviZyQQd+hFbcojREIfoBdhmpATvIKMPHk@public.gmane.org>
On 2/24/2014 9:01 AM, Nicholas A. Bellinger wrote:
> On Sun, 2014-02-23 at 14:19 +0200, Sagi Grimberg wrote:
>> This patchset Introduces Verbs level support for signature handover feature.
>> Siganture is intended to implement end-to-end data integrity on a transactional
>> basis in a completely offloaded manner.
>>
>> There are several end-to-end data integrity methods used today in various
>> applications and/or upper layer protocols such as T10-DIF defined by SCSI
>> specifications (SBC), CRC32, XOR8 and more. This patchset adds verbs support
>> only for T10-DIF. The proposed framework allows adding more signature methods
>> in the future.
>>
>> In T10-DIF, when a series of 512-byte data blocks are transferred, each block
>> is followed by an 8-byte guard (note that other protection intervals may be used
>> other then 512-bytes). The guard consists of CRC that protects the integrity of
>> the data in the block, and tag that protects against mis-directed IOs and a free
>> tag for application use.
>>
>> Data can be protected when transferred over the wire, but can also be protected
>> in the memory of the sender/receiver. This allows true end- to-end protection
>> against bits flipping either over the wire, through gateways, in memory, over PCI, etc.
>>
>> While T10-DIF clearly defines that over the wire protection guards are interleaved
>> into the data stream (each 512-Byte block followed by 8-byte guard), when in memory,
>> the protection guards may reside in a buffer separated from the data. Depending on the
>> application, it is usually easier to handle the data when it is contiguous.
>> In this case the data buffer will be of size 512xN and the protection buffer will
>> be of size 8xN (where N is the number of blocks in the transaction).
>>
>> There are 3 kinds of signature handover operation:
>> 1. Take unprotected data (from wire or memory) and ADD protection
>> guards.
>> 2. Take protetected data (from wire or memory), validate the data
>> integrity against the protection guards and STRIP the protection
>> guards.
>> 3. Take protected data (from wire or memory), validate the data
>> integrity against the protection guards and PASS the data with
>> the guards as-is.
>>
>> This translates to defining to the HCA how/if data protection exists in memory domain,
>> and how/if data protection exists is wire domain.
>>
>> The way that data integrity is performed is by using a new kind of memory
>> region: signature-enabled MR, and a new kind of work request: REG_SIG_MR.
>> The REG_SIG_MR WR operates on the signature-enabled MR, and defines all the
>> needed information for the signature handover (data buffer, protection buffer
>> if needed and signature attributes). The result is an MR that can be used for
>> data transfer as usual, that will also add/validate/strip/pass protection guards.
>>
>> When the data transfer is successfully completed, it does not mean that there are
>> no integrity errors. The user must afterwards check the signature status of the
>> handover operation using a new light-weight verb.
>>
>> This feature shall be used in storage upper layer protocols iSER/SRP implementing
>> end-to-end data integrity T10-DIF. Following this patchset, ib_iser/ib_isert
>> will use these verbs for T10-PI offload support.
>>
>> Patchset summary:
>> - Intoduce verbs for create/destroy memory regions supporting signature.
>> - Introduce IB core signature verbs API.
>> - Implement mr create/destroy verbs in mlx5 driver.
>> - Preperation patches for signature support in mlx5 driver.
>> - Implement signature handover work request in mlx5 driver.
>> - Implement signature error collection and handling in mlx5 driver.
>>
>> Changes from v4:
>> - Update to for-next 3.14-rc2
> Series applied to target-pending/rdma-dif, minus the missing upstream
> check in patch #5.
>
> Thanks Sagi!
>
> --nab
Thanks Nic.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-02-24 8:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-23 12:19 [PATCH v5 00/10] Introduce Signature feature Sagi Grimberg
[not found] ` <1393157953-24834-1-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2014-02-23 12:19 ` [PATCH v5 01/10] IB/core: Introduce protected memory regions Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 02/10] IB/core: Introduce Signature Verbs API Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 03/10] IB/mlx5, mlx5_core: Support for create_mr and destroy_mr Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 04/10] IB/mlx5: Initialize mlx5_ib_qp signature related Sagi Grimberg
[not found] ` <1393157953-24834-5-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2014-02-24 6:46 ` Nicholas A. Bellinger
[not found] ` <1393224376.22656.13.camel-XoQW25Eq2zviZyQQd+hFbcojREIfoBdhmpATvIKMPHk@public.gmane.org>
2014-02-24 8:10 ` Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 05/10] IB/mlx5: Break wqe handling to begin & finish routines Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 06/10] IB/mlx5: remove MTT access mode from umr flags helper function Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 07/10] IB/mlx5: Keep mlx5 MRs in a radix tree under device Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 08/10] IB/mlx5: Support IB_WR_REG_SIG_MR Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 09/10] IB/mlx5: Collect signature error completion Sagi Grimberg
2014-02-23 12:19 ` [PATCH v5 10/10] IB/mlx5: Publish support in signature feature Sagi Grimberg
2014-02-24 7:01 ` [PATCH v5 00/10] Introduce Signature feature Nicholas A. Bellinger
[not found] ` <1393225299.22656.22.camel-XoQW25Eq2zviZyQQd+hFbcojREIfoBdhmpATvIKMPHk@public.gmane.org>
2014-02-24 8:11 ` Sagi Grimberg [this message]
2014-03-07 19:43 ` Roland Dreier
[not found] ` <CAL1RGDXG2yU5mVi=e4A2NFyFo33Um=y03u7yyXL7GZ-J-y3KRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-09 10:57 ` Sagi Grimberg
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=530AFEC4.6070209@dev.mellanox.co.il \
--to=sagig-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nab-IzHhD5pYlfBP7FQvKIMDCQ@public.gmane.org \
--cc=oren-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/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