linux-scsi.vger.kernel.org archive mirror
 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 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).