All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] SCSI/libiscsi: Reduce locking contention in fast path
@ 2013-10-27 13:23 Or Gerlitz
  2013-10-27 13:23 ` [PATCH 1/3] SCSI/libiscsi: Restructure iscsi_tcp r2t response logic Or Gerlitz
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Or Gerlitz @ 2013-10-27 13:23 UTC (permalink / raw)
  To: JBottomley; +Cc: linux-scsi, MChristie, shlomop, Or Gerlitz

Hi James, 

This series is about reducing locking contention in the IO submission/response processing 
fast path of libiscsi and the various iscsi transports usage of libiscsi code.

We replace the session lock with two locks, a forward lock and a backwards lock 
named frwd_lock and back_lock respectively.

The forward lock protects resources that change while sending a request to the 
target, such as cmdsn, queued_cmdsn, and allocating task from the commands' 
pool with kfifo_out.

The backward lock protects resources that change while processing a response or 
in error path, such as cmdsn_exp, cmdsn_max, and returning tasks to the commands' 
pool with kfifo_in. 

The 1st patch in the series is a restructuring patch for iscsi_tcp r2t response
logic, the 2nd is the main patch and the 3rd is cleanup asked by Mike who reviewed
the whole series when we posted in over the open-iscsi mailing list.

Under a "steady state" fast-path situation, that is when one or more processes/threads 
submit IO to an iscsi device and a single kernel upcall (e.g softirq) is dealing 
with processing  of responses without errors, this patch eliminates the contention
between the queuecommand()/request response/scsi_done() associated with iscsi sessions.

Or and Shlomo.

Shlomo Pongratz (3):
  SCSI/libiscsi: Restructure iscsi_tcp r2t response logic
  SCSI/libiscsi: Reduce locking contention in fast path
  SCSI/libiscsi: Remove unneeded code

 drivers/scsi/be2iscsi/be_main.c  |   26 ++--
 drivers/scsi/bnx2i/bnx2i_hwi.c   |   46 ++++----
 drivers/scsi/bnx2i/bnx2i_iscsi.c |    8 +-
 drivers/scsi/iscsi_tcp.c         |   22 ++--
 drivers/scsi/libiscsi.c          |  226 ++++++++++++++++++++------------------
 drivers/scsi/libiscsi_tcp.c      |   71 +++++++-----
 drivers/scsi/qla4xxx/ql4_isr.c   |    4 +-
 include/scsi/libiscsi.h          |   17 ++-
 include/scsi/libiscsi_tcp.h      |    2 +
 9 files changed, 228 insertions(+), 194 deletions(-)


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

end of thread, other threads:[~2013-11-11  5:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-27 13:23 [PATCH 0/3] SCSI/libiscsi: Reduce locking contention in fast path Or Gerlitz
2013-10-27 13:23 ` [PATCH 1/3] SCSI/libiscsi: Restructure iscsi_tcp r2t response logic Or Gerlitz
2013-10-30  1:46   ` Mike Christie
2013-10-27 13:23 ` [PATCH 2/3] SCSI/libiscsi: Reduce locking contention in fast path Or Gerlitz
2013-10-27 13:23 ` [PATCH 3/3] SCSI/libiscsi: Remove unneeded code Or Gerlitz
2013-11-11  5:55 ` [PATCH 0/3] SCSI/libiscsi: Reduce locking contention in fast path Mike Christie

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.