[PATCH 0/8] Drop host_lock around LLD SHT->queuecommand() caller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>

Greetings all,

This series contains the first round of a whole-sale conversion for droping
struct Scsi_Host->host_lock around struct Scsi_Host->queuecommand() within
scsi_dispatch_cmd().  So with this first patch the only part of scsi_dispatch_cmd()
that is protected by host_lock is scsi_cmd_get_serial)_.

The patches #2 -> #8 converts libiscsi, libsas, lpfc, qla4xxx, qla2xxx,
TCM_Loop, and libfc code to drop their own SHT->queuecommand() internal
host_lock unlock() + lock() optimization that certain high performance libs
and LLDs have adopted over the years.  The changes involved here are really
quite straight forward, but please note that none of this code has been tested
with actual hardware yet, and is intended for generating comments for the relivent
SCSI LLD driver maintainers and other interested folks.

There are probably still be more LLDs which use this optimization, so please
let me know if there is another piece of SHT->queuecommand() caller code that
does this legacy optimization and needs to be updated.  I will be sure to
CC the right driver maintainers and CC linux-scsi as I come across any more
conversions.

Many thanks to Vasu Dev and Tim Chen for their work in this area!!

Signed-off-by: Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx>

Nicholas Bellinger (8):
  scsi: Drop struct Scsi_Host->host_lock around SHT->queuecommand()
  libiscsi: Remove host_lock unlock() + lock() from
    iscsi_queuecommand()
  libsas: Remove host_lock unlock() + lock() from sas_queuecommand()
  lpfc: Remove host_lock unlock() + lock() from lpfc_queuecommand()
  qla4xxx: Remove host_lock unlock() + lock() from
    qla4xxx_queuecommand()
  qla2xxx: Remove host_lock unlock() + lock() from
    qla2xxx_queuecommand()
  tcm_loop: Remove host_lock unlock() + lock() from
    tcm_loop_queuecommand()
  libfc: Remove host_lock unlock() + lock() from fc_queuecommand()

 drivers/scsi/libfc/fc_fcp.c                    |    5 +----
 drivers/scsi/libiscsi.c                        |    4 ----
 drivers/scsi/libsas/sas_scsi_host.c            |    5 -----
 drivers/scsi/lpfc/lpfc_scsi.c                  |    2 --
 drivers/scsi/qla2xxx/qla_os.c                  |    7 ++-----
 drivers/scsi/qla4xxx/ql4_os.c                  |    8 +-------
 drivers/scsi/scsi.c                            |    3 ++-
 drivers/target/tcm_loop/tcm_loop_fabric_scsi.c |    7 -------
 8 files changed, 6 insertions(+), 35 deletions(-)

-- 
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux