All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFCv2 0/7] vhost/scsi: Add T10 PI SGL passthrough support
@ 2014-03-17  5:32 Nicholas A. Bellinger
  2014-03-17  5:32 ` [RFCv2 1/7] virtio-scsi.h: Add virtio_scsi_cmd_req_pi header definition Nicholas A. Bellinger
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Nicholas A. Bellinger @ 2014-03-17  5:32 UTC (permalink / raw)
  To: target-devel
  Cc: linux-scsi, linux-kernel, kvm-devel, Michael S. Tsirkin,
	Paolo Bonzini, Martin K. Petersen, Christoph Hellwig,
	Hannes Reinecke, Sagi Grimberg, H. Peter Anvin,
	Nicholas Bellinger

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

Hi MST, MKP, Paolo & Co,

This is an updated -v2 series for adding T1O protection information (PI)
SGL passthrough support between virtio-scsi LLD + vhost-scsi fabric
endpoints.

The patch series is available at:

  git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git vhost-dif

Following Paolo's recommendations, this patch adds a new virtio_scsi command
header (virtio_scsi_cmd_req_pi) with the following elements to signal the
existence of protection information:

     ->do_pi_niov (DataOUT PI number of iovecs)
     ->di_pi_noiv (DataIN PI number of iovecs)

Also included is the change to attach protection information preceeding the
actual DataOUT + DataIN data payload, thus making a future improvement of
processing virtio buffers inline a possibility.

vhost-scsi code has also been updated to determine virtio_scsi_cmd_req or
virtio_scsi_cmd_req_pi usage based upon the first iovec's (header) length,
and then continues to process in either mode accordingly.

As with the original RFC, the virtio-scsi patch still contains a hack
to force DIX/DIF to be enabled, regardless of host provided feature bits.
This regression bug still needs to be tracked down.

v2 changes:
  - Add virtio_scsi_cmd_req_pi header (Paolo + nab)
  - Use virtio_scsi_cmd_req_pi instead of existing ->prio (Paolo + nab)
  - Make protection buffer come before data buffer (Paolo + nab)
  - Update vhost_scsi_get_tag() parameter usage (nab)

Please review.

Thanks!

--nab

Nicholas Bellinger (7):
  virtio-scsi.h: Add virtio_scsi_cmd_req_pi header definition
  vhost/scsi: Move sanity check into vhost_scsi_map_iov_to_sgl
  vhost/scsi: Add preallocation of protection SGLs
  vhost/scsi: Add T10 PI IOV -> SGL memory mapping logic
  vhost/scsi: Enable T10 PI IOV -> SGL memory mapping
  vhost/scsi: Add new VIRTIO_SCSI_F_T10_PI feature bit
  virtio-scsi: Enable DIF/DIX modes in SCSI host LLD

 drivers/scsi/virtio_scsi.c  |   79 +++++++++---
 drivers/vhost/scsi.c        |  289 +++++++++++++++++++++++++++++--------------
 include/linux/virtio_scsi.h |   15 ++-
 3 files changed, 273 insertions(+), 110 deletions(-)

-- 
1.7.2.5

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

end of thread, other threads:[~2014-03-17 19:18 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-17  5:32 [RFCv2 0/7] vhost/scsi: Add T10 PI SGL passthrough support Nicholas A. Bellinger
2014-03-17  5:32 ` [RFCv2 1/7] virtio-scsi.h: Add virtio_scsi_cmd_req_pi header definition Nicholas A. Bellinger
2014-03-17  5:32 ` [RFCv2 2/7] vhost/scsi: Move sanity check into vhost_scsi_map_iov_to_sgl Nicholas A. Bellinger
2014-03-17  5:32 ` [RFCv2 3/7] vhost/scsi: Add preallocation of protection SGLs Nicholas A. Bellinger
2014-03-17  5:32 ` [RFCv2 4/7] vhost/scsi: Add T10 PI IOV -> SGL memory mapping logic Nicholas A. Bellinger
2014-03-17  5:32 ` [RFCv2 5/7] vhost/scsi: Enable T10 PI IOV -> SGL memory mapping Nicholas A. Bellinger
2014-03-17 11:02   ` Paolo Bonzini
2014-03-17 19:18     ` Nicholas A. Bellinger
2014-03-17  5:33 ` [RFCv2 6/7] vhost/scsi: Add new VIRTIO_SCSI_F_T10_PI feature bit Nicholas A. Bellinger
2014-03-17  5:33 ` [RFCv2 7/7] virtio-scsi: 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.