mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Nicholas A. Bellinger" <nab@daterainc.com>
To: target-devel <target-devel@vger.kernel.org>
Cc: linux-scsi <linux-scsi@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Christoph Hellwig <hch@lst.de>, Hannes Reinecke <hare@suse.de>,
	Sagi Grimberg <sagig@mellanox.com>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Roland Dreier <roland@kernel.org>,
	Nicholas Bellinger <nab@linux-iscsi.org>
Subject: [PATCH-v2 00/17] target: Add support for DIF Type1+Type3 emulation + passthrough
Date: Sun, 19 Jan 2014 02:44:23 +0000	[thread overview]
Message-ID: <1390099480-29013-1-git-send-email-nab@daterainc.com> (raw)

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


             reply	other threads:[~2014-01-19  3:05 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-19  2:44 Nicholas A. Bellinger [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1390099480-29013-1-git-send-email-nab@daterainc.com \
    --to=nab@daterainc.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=nab@linux-iscsi.org \
    --cc=ogerlitz@mellanox.com \
    --cc=roland@kernel.org \
    --cc=sagig@mellanox.com \
    --cc=target-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome