On Sun, Jan 19, 2014 at 1:20 PM, sagi grimberg <[email protected]> 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 linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
