linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] target: Add support for COMPARE_AND_WRITE (VAAI) emulation
@ 2013-08-20 20:07 Nicholas A. Bellinger
  2013-08-20 20:07 ` [PATCH 1/9] scsi: Add CDB definition for COMPARE_AND_WRITE Nicholas A. Bellinger
                   ` (9 more replies)
  0 siblings, 10 replies; 28+ messages in thread
From: Nicholas A. Bellinger @ 2013-08-20 20:07 UTC (permalink / raw)
  To: target-devel
  Cc: lkml, linux-scsi, Christoph Hellwig, Hannes Reinecke,
	Martin Petersen, Chris Mason, James Bottomley, Nicholas Bellinger,
	Nicholas Bellinger

From: Nicholas Bellinger <nab@daterainc.com>

Hi folks,

This series adds support to target-core for generic COMPARE_AND_WRITE
emulation as defined by SBC-3 using virtual (IBLOCK, FILEIO, RAMDISK)
backends.

COMPARE_AND_WRITE is a VMWare ESX VAAI primitive that is currently used
by VMFS to perform array side locking of filesystem extents.  The logic
is the functional equivilent of an atomic test and set, which allows a
cluster filesystem to scale across multiple clients by locking individual
regions, without having to obtain a traditional SCSI reservation for
exclusive access to the entire logical unit.

This implemenation is currently limited to a single number of logical
block (NoLB).

It's also currently lacking the necessary sychronization between I/O
submission of COMPARE_AND_WRITE verify instance and write instance
user data, which is still being worked on in order to avoid additional
overhead in the main I/O fast path.

Please review as v3.12 material.

Thanks!

--nab

Nicholas Bellinger (9):
  scsi: Add CDB definition for COMPARE_AND_WRITE
  target: Add return for se_cmd->transport_complete_callback
  target: Add memory allocation for bidirectional commands
  target: Add TCM_MISCOMPARE_VERIFY sense handling
  target: Skip ->queue_data_in() callbacks for COMPARE_AND_WRITE
  target: Allow sbc_ops->execute_rw() to accept SGLs + data_direction
  target: Add transport_reset_sgl_orig() for COMPARE_AND_WRITE
  target: Add support for COMPARE_AND_WRITE emulation
  tcm_qla2xxx: Add special case for COMPARE_AND_WRITE data_direction

 drivers/scsi/qla2xxx/tcm_qla2xxx.c     |    9 +-
 drivers/target/target_core_file.c      |    6 +-
 drivers/target/target_core_iblock.c    |    6 +-
 drivers/target/target_core_rd.c        |    6 +-
 drivers/target/target_core_sbc.c       |  205 +++++++++++++++++++++++++++++---
 drivers/target/target_core_transport.c |  109 ++++++++++++++++-
 include/scsi/scsi.h                    |    1 +
 include/target/target_core_backend.h   |    3 +-
 include/target/target_core_base.h      |    9 +-
 9 files changed, 317 insertions(+), 37 deletions(-)

-- 
1.7.10.4


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

end of thread, other threads:[~2013-08-21 17:46 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-20 20:07 [PATCH 0/9] target: Add support for COMPARE_AND_WRITE (VAAI) emulation Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 1/9] scsi: Add CDB definition for COMPARE_AND_WRITE Nicholas A. Bellinger
2013-08-21  6:30   ` Christoph Hellwig
2013-08-20 20:07 ` [PATCH 2/9] target: Add return for se_cmd->transport_complete_callback Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 3/9] target: Add memory allocation for bidirectional commands Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 4/9] target: Add TCM_MISCOMPARE_VERIFY sense handling Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 5/9] target: Skip ->queue_data_in() callbacks for COMPARE_AND_WRITE Nicholas A. Bellinger
2013-08-21  6:32   ` Christoph Hellwig
2013-08-21  7:20     ` Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 6/9] target: Allow sbc_ops->execute_rw() to accept SGLs + data_direction Nicholas A. Bellinger
2013-08-21  6:35   ` Christoph Hellwig
2013-08-21  7:26     ` Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 7/9] target: Add transport_reset_sgl_orig() for COMPARE_AND_WRITE Nicholas A. Bellinger
2013-08-20 20:07 ` [PATCH 8/9] target: Add support for COMPARE_AND_WRITE emulation Nicholas A. Bellinger
2013-08-21 16:14   ` Christoph Hellwig
2013-08-21 17:47     ` Nicholas A. Bellinger
2013-08-20 20:08 ` [PATCH 9/9] tcm_qla2xxx: Add special case for COMPARE_AND_WRITE data_direction Nicholas A. Bellinger
2013-08-21  6:37   ` Christoph Hellwig
2013-08-21  7:31     ` Nicholas A. Bellinger
2013-08-21 16:04       ` Christoph Hellwig
2013-08-21 14:38   ` Roland Dreier
2013-08-21 15:53     ` Christoph Hellwig
2013-08-21 17:52       ` Nicholas A. Bellinger
2013-08-21 16:47     ` Roland Dreier
2013-08-20 21:29 ` [PATCH 0/9] target: Add support for COMPARE_AND_WRITE (VAAI) emulation Christoph Hellwig
2013-08-20 21:53   ` Nicholas A. Bellinger
2013-08-20 22:01     ` Douglas Gilbert
2013-08-20 22:19       ` Nicholas A. Bellinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).