Re: linux rdma 3.14 merge plans

Or Gerlitz
2014-01-20T13:56:14Z

On Sun, Jan 19, 2014 at 1:20 PM, sagi grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> wrote:
> Thanks Nic, let me elaborate on this,
>
> It is true that T10-PI aims for end-to-end data-integrity, the verbs API offer HW offload for protection
> information processing which is VERY expensive for CPU computation (CRC verify for each block). T10-PI
> is intended to be offloaded, both on the backend devices which supports this feature and for fabric
> transports (such as Qlogic/Emulex FC drivers), Verbs API just adds RDMA to the game...
>
> T10-PI specifies protection information scheme in a way that over the wire each protection interval is
> followed by 8 bytes of data-integrity (interleaved). In the memory on the other hand, the data and
> protection block-guards may lie in separated buffers (for example that is the preferred approach in block
> and SCSI layers).
>
> Newly introduced REG_SIG_MR work request allows to (fast) register a "signature" memory key which
> incorporates the protection method and pattern used:
> 1. Where is the data? (data sge)
> 2. Where is the protection block-guards? (protection sge)
> 3. What are the signature attributes? (T10-PI method, crc/reftag/apptag seeds, verify mask, memory pattern, wire pattern)
> When doing the actual data-transfer the HCA will enforce T10-PI scheme (See my cover-letter for a more detailed explanation).
>
> If you take a look in SCSI implementation you will see that SCSI signals the transport of protection attributes in
> scsi_cmnd (prot SG-list, protection type, guard type, protection operation). Verbs API allows full offload of all
> T10-PI operations:
> 1. INSERT - HCA computes/generates data-integrity block-guards and writes them according to the specified
> pattern (interleaved with the data or in a separated buffer).
> 2. STRIP (and VERIFY) - HCA verifies incoming data-integrity block-guards and strip them from the data stream.
> 3. PASS (and VERIFY) - HCA verifies incoming data-integrity block-guards and passes them forward according to
> the specified pattern (interleaved/separated).
>
> In addition, Verbs API can be easily extended to support other data-integrity methods (XOR-32, CRC-32, etc...)
> so that an application interested in data-integrity has signature verbs in its tool-box. This is why we use "Signature"
> notation and refer to T10-PI as a specific signature method.
>
> Hope this helps,

Hi Roland,

So with Nic's && Sagi's answers @ hand, were your questions resolved?

Also, Nic put the V4 patches in a branch on his tree for 0-day testing
and we had one hit from Dan Carpenter which Sagi addressed with
incremental fix he sent you.

Or.