Hey Nic and folks,
This patchset introduces target side T10-PI offload support over
RDMA. Currently the implementation is for iSER transport but can
be easily extended to SRP (or FCoE in the future).
Should mention that this patchset depends on RDMA signature
verbs making it for inclusion which will hopefully happen in
near future.
This code was tested against iSER legacy initiator, and also
initiator that uses T10-PI offload as well. I'll clean up the
initiator code in the following days and submit that as well.
This code works under medium loads using backstores:
- FileIO with DIF emulation.
- RD with DIF emulation.
- iBLOCK (scsi_debug with DIF support).
Nic, Can you take this code to rdma_dif branch until RDMA
Signature verbs set will pass submission? (after review of
course...).
Chnages from v0:
- Rebased from for-next
- Target core:
- Don't minor fixes for check_prot - to support transports
that doesn't use submit_map_sgls.
- file format - use escape values.
- Removed redundant prot_handover.
- Added protection checks and operation set.
- iSER:
- Added preperation routines for mapping/unmapping buffers
to ease the amount of code in isert_reg_rdma.
- Fixed print of DIF error (sector instead of offset).
- Fix RDMA length for protection on wire domain.
- Refactored reg_sig_mr to use helper routines.
Sagi Grimberg (12):
Target/transport: Allocate protection sg if needed
Target/sbc: Set protection operation and relevant checks
Target/file: place escape values for protection information format
Target/sbc: don't return from sbc_check for non prot_sg
Target/core: Remove prot_handover use for now
Target/iscsi: Add T10-PI indication for iscsi_portal_group
Target/configfs: Expose iSCSI network portal group T10-PI support
Target/sbc: add debug print
IB/isert: Introduce isert_map/unmap_data_buf
IB/isert: Initialize T10-PI resources
IB/isert: Accept RDMA_WRITE completions
IB/isert: Support T10-PI protected transactions
drivers/infiniband/ulp/isert/ib_isert.c | 675 ++++++++++++++++++++------
drivers/infiniband/ulp/isert/ib_isert.h | 38 ++-
drivers/target/iscsi/iscsi_target_configfs.c | 6 +
drivers/target/iscsi/iscsi_target_core.h | 5 +-
drivers/target/iscsi/iscsi_target_tpg.c | 21 +
drivers/target/iscsi/iscsi_target_tpg.h | 1 +
drivers/target/target_core_file.c | 40 +--
drivers/target/target_core_sbc.c | 93 ++++-
drivers/target/target_core_transport.c | 33 ++-
include/target/target_core_base.h | 13 +-
10 files changed, 698 insertions(+), 227 deletions(-)
--
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