All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH-v2 00/17] target: Add support for DIF Type1+Type3 emulation + passthrough
@ 2014-01-19  2:44 Nicholas A. Bellinger
  2014-01-19  2:44 ` [PATCH-v2 01/17] target: Add DIF related base definitions Nicholas A. Bellinger
                   ` (16 more replies)
  0 siblings, 17 replies; 37+ messages in thread
From: Nicholas A. Bellinger @ 2014-01-19  2:44 UTC (permalink / raw)
  To: target-devel
  Cc: linux-scsi, linux-kernel, Martin K. Petersen, Christoph Hellwig,
	Hannes Reinecke, Sagi Grimberg, Or Gerlitz, Roland Dreier,
	Nicholas Bellinger

From: Nicholas Bellinger <nab@linux-iscsi.org>

Hi MKP & Co,

This -v2 series contains support for target mode DIF Type1+Type3
emulation within target core, FILEIO, and RAMDISK_MCP device backends,
BIP passthrough of T10 PI within IBLOCK device backends, and DIF/DIX
host support in the tcm_loop fabric driver.

DIF emulation is enabled via a new 'pi_prot_type' device attribute
within configfs for FILEIO + RAMDISK_MCP, which is set after initial
device configuration and before target fabric LUN export occurs.

For IBLOCK backends, protection support is automatically detected via
struct blk_integrity at configuration time, and no additional end-user
setup is required.

For FILEIO backends, format of protection information is exposed via
a new 'pi_prot_format' device attribute, that is used during initial
configuration to format a new $FILENAME.protection file containing
DIF Type1/Type3 style metadata.

Also, the DIF read/write verify emulation has been made generic enough
so it can be used by other backend drivers (eg: FILEIO), as well as
Type4 (16-byte PI) in the near future.

Here is the v1 -> v2 changelog:

  - Drop guard_type related definitions
  - Update target_prot_op + target_prot_ho definitions (Sagi)
  - Drop SCF_PROT + pi_prot_version flag
  - Add se_subsystem_api->format_prot() (Sagi)
  - Add hw_pi_prot_type device attribute
  - Make sbc_check_prot defined as static (Fengguang + Wei)
  - Remove unprotected READ/WRITE warning (mkp)
  - Populate cmd->prot_type + friends (Sagi)
  - Drop SCF_PROT usage
  - Select CRC_T10DIF for TARGET_CORE in Kconfig (Fengguang)
  - Drop IP checksum logic from sbc_dif_v1_verify (MKP)
  - Fix offset on app_tag = 0xffff in sbc_dif_verify_read()
  - Drop pi_guard_type + pi_prot_version related code (MKP)
  - Add pi_prot_format logic (Sagi)
  - Add ->free_prot callback in target_free_device
  - Add hw_pi_prot_type read-only attribute
  - Add target/iblock blk_integrity + BIP passthrough
  - Add target/file DIF protection init/format support
  - Add target/file DIF protection support to fd_execute_rw
  - Drop unused sg_table from rd_release_device_space (Wei)
  - Drop unused sg_table from rd_release_prot_space (Wei)
  - Drop rd_release_prot_space call from rd_free_device
  - Make rd_execute_rw() to u32 sectors count instead of sector_t

At this point the main TODO item remaining for v3.14 code is to determine
how best to propigate App/Guard/Reference Tag VERIFY failures back up
into IBLOCK device backend code.

MKP has an idea how to go about doing this that will be appearing as
a seperate SCSI-core + IBLOCK patch.

Thank you,

--nab

Nicholas Bellinger (17):
  target: Add DIF related base definitions
  target: Add DIF CHECK_CONDITION ASC/ASCQ exception cases
  target/sbc: Add DIF setup in sbc_check_prot + sbc_parse_cdb
  target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation
  target/spc: Add protection bit to standard INQUIRY output
  target/spc: Add protection related bits to INQUIRY EVPD=0x86
  target/sbc: Add P_TYPE + PROT_EN bits to READ_CAPACITY_16
  target/spc: Expose ATO bit in control mode page
  target/configfs: Expose protection device attributes
  target: Add protection SGLs to target_submit_cmd_map_sgls
  target/iblock: Add blk_integrity + BIP passthrough support
  target/file: Add DIF protection init/format support
  target/file: Add DIF protection support to fd_execute_rw
  target/rd: Refactor rd_build_device_space + rd_release_device_space
  target/rd: Add support for protection SGL setup + release
  target/rd: Add DIF protection into rd_execute_rw
  tcm_loop: Enable DIF/DIX modes in SCSI host LLD

 drivers/target/Kconfig                 |    2 +
 drivers/target/loopback/tcm_loop.c     |   12 +-
 drivers/target/target_core_configfs.c  |   12 ++
 drivers/target/target_core_device.c    |   89 +++++++++++
 drivers/target/target_core_file.c      |  256 +++++++++++++++++++++++++++++++-
 drivers/target/target_core_file.h      |    9 ++
 drivers/target/target_core_iblock.c    |   91 +++++++++++-
 drivers/target/target_core_internal.h  |    2 +
 drivers/target/target_core_rd.c        |  252 +++++++++++++++++++++++++------
 drivers/target/target_core_rd.h        |    4 +
 drivers/target/target_core_sbc.c       |  245 ++++++++++++++++++++++++++++++
 drivers/target/target_core_spc.c       |   27 ++++
 drivers/target/target_core_transport.c |   46 +++++-
 drivers/vhost/scsi.c                   |    2 +-
 include/target/target_core_backend.h   |    7 +
 include/target/target_core_base.h      |   47 ++++++
 include/target/target_core_fabric.h    |    3 +-
 17 files changed, 1052 insertions(+), 54 deletions(-)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2014-01-22 22:27 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-19  2:44 [PATCH-v2 00/17] target: Add support for DIF Type1+Type3 emulation + passthrough Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 01/17] target: Add DIF related base definitions Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 02/17] target: Add DIF CHECK_CONDITION ASC/ASCQ exception cases Nicholas A. Bellinger
2014-01-22 16:44   ` Sagi Grimberg
2014-01-22 22:16     ` Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 03/17] target/sbc: Add DIF setup in sbc_check_prot + sbc_parse_cdb Nicholas A. Bellinger
2014-01-19 11:43   ` Sagi Grimberg
2014-01-21 22:48     ` Nicholas A. Bellinger
2014-01-22 18:00       ` Sagi Grimberg
2014-01-22 22:27         ` Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 04/17] target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 05/17] target/spc: Add protection bit to standard INQUIRY output Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 06/17] target/spc: Add protection related bits to INQUIRY EVPD=0x86 Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 07/17] target/sbc: Add P_TYPE + PROT_EN bits to READ_CAPACITY_16 Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 08/17] target/spc: Expose ATO bit in control mode page Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 09/17] target/configfs: Expose protection device attributes Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 10/17] target: Add protection SGLs to target_submit_cmd_map_sgls Nicholas A. Bellinger
2014-01-19 12:12   ` Sagi Grimberg
2014-01-21 22:17     ` Nicholas A. Bellinger
2014-01-22 10:07       ` Sagi Grimberg
2014-01-19  2:44 ` [PATCH-v2 11/17] target/iblock: Add blk_integrity + BIP passthrough support Nicholas A. Bellinger
2014-01-19 12:21   ` Sagi Grimberg
2014-01-21 22:20     ` Nicholas A. Bellinger
2014-01-22  1:54       ` Martin K. Petersen
2014-01-22  1:52     ` Martin K. Petersen
2014-01-22 10:09       ` Sagi Grimberg
2014-01-19  2:44 ` [PATCH-v2 12/17] target/file: Add DIF protection init/format support Nicholas A. Bellinger
2014-01-19 12:31   ` Sagi Grimberg
2014-01-21 22:28     ` Nicholas A. Bellinger
2014-01-22 10:12       ` Sagi Grimberg
2014-01-22 22:13         ` Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 13/17] target/file: Add DIF protection support to fd_execute_rw Nicholas A. Bellinger
2014-01-19 12:37   ` Sagi Grimberg
2014-01-19  2:44 ` [PATCH-v2 14/17] target/rd: Refactor rd_build_device_space + rd_release_device_space Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 15/17] target/rd: Add support for protection SGL setup + release Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 16/17] target/rd: Add DIF protection into rd_execute_rw Nicholas A. Bellinger
2014-01-19  2:44 ` [PATCH-v2 17/17] tcm_loop: Enable DIF/DIX modes in SCSI host LLD Nicholas A. Bellinger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.