On Sun, Jan 19, 2014 at 1:20 PM, sagi grimberg <sagig@xxxxxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html