Skip to content

First wave of LLD host_lock less conversion

Nicholas A. Bellinger linux-scsi 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest11 patches 22 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11libiscsi: Convert to host_lock less w/ interrupts disabled internallydrivers/scsi/libiscsi.c+7 -124 replies
2/11libata: remove SCSI host lock and serial number usage from ata_scsi_queuecmddrivers/ata/libata-scsi.c+9 -120 replies
3/11scsi: Add IRQ_DISABLE_SCSI_QCMD wrapperinclude/scsi/scsi_host.h+14 -07 replies
4/11libsas: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/libsas/sas_scsi_host.c+2 -22 replies
5/11message: Convert to host_lock less w/ interrupts disabled externallydrivers/message/fusion/mptfc.c drivers/message/fusion/mptsas.c drivers/message/fusion/mptscsih.c +2 more+13 -110 replies
6/11mpt2sas: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/mpt2sas/mpt2sas_scsih.c+3 -39 replies
7/11fnic: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/fnic/fnic_scsi.c+3 -110 replies
8/11lpfc: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/lpfc/lpfc_scsi.c+4 -50 replies
9/11qla2xxx: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/qla2xxx/qla_os.c+3 -80 replies
10/11qla4xxx: Convert to host_lock less w/ interrupts disabled externallydrivers/scsi/qla4xxx/ql4_os.c+3 -70 replies
11/11scsi_debug: Convert to host_lock lessdrivers/scsi/scsi_debug.c+7 -90 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH/RFCv2 00/11] First wave of LLD host_lock less conversion

From: Nicholas Bellinger <[email protected]>

Greetings all,

This series contains the v2 respin for the first series of lock_less LLD conversion patches now available from lio-core-2.6.git/lock_less-LLDs-for-38-v2 This series is built on top of the recently committed to mainline full host_lock push down patch by jgarzik @ commit f281233d3, and the recent:

[PATCH] Eliminate error handler overload of the SCSI serial number

The first patch to libiscsi does a conversion to host_lock less whilst using existing internal spin_lock_irqsave(); do_lld_work(); spin_unlock_irqrestore() LLD locks. The second patch from jgarzik included in the series does an simlar -> improved host_lock less conversion w/ interrupts disabled internally from the libata I/O queuecommand dispatcher.

The third patch adds a IRQ_DISABLE_SCSI_QCMD wrapper similar to DEF_SCSI_QCMD() that will disable interrupts using local_irq_save() before calling lld_queuecommand_irq_disable().

The forth -> eleventh patches convert libsas, message/fusion, mpt2sas, fnic, lpfc, qla2xxx and qla4xxx to run in host_lock less w/ IRQ_DISABLE_SCSI_QCMD(). The final patch drops the usage of DEF_SCSI_QCMD() around scsi_debug, which is fully capable of processing I/O w/o hard interrupts disabled.

This code has been generated against this afternoon's .37-rc2, and compile tested only.

To the CC'ed LLD maintainers, please have a look and add your comments / feedback as necessary.

Thanks!

--nab

Jeff Garzik (1):
libata: remove SCSI host lock and serial number usage from
ata_scsi_queuecmd

Nicholas Bellinger (10):
libiscsi: Convert to host_lock less w/ interrupts disabled internally
scsi: Add IRQ_DISABLE_SCSI_QCMD wrapper
libsas: Convert to host_lock less w/ interrupts disabled externally
message: Convert to host_lock less w/ interrupts disabled externally
mpt2sas: Convert to host_lock less w/ interrupts disabled externally
fnic: Convert to host_lock less w/ interrupts disabled externally
lpfc: Convert to host_lock less w/ interrupts disabled externally
qla2xxx: Convert to host_lock less w/ interrupts disabled externally
qla4xxx: Convert to host_lock less w/ interrupts disabled externally
scsi_debug: Convert to host_lock less

 drivers/ata/libata-scsi.c            |   21 +++++++++------------
 drivers/message/fusion/mptfc.c       |    2 +-
 drivers/message/fusion/mptsas.c      |    6 +++---
 drivers/message/fusion/mptscsih.c    |    8 +++++---
 drivers/message/fusion/mptscsih.h    |    2 +-
 drivers/message/fusion/mptspi.c      |    6 +++---
 drivers/scsi/fnic/fnic_scsi.c        |   14 +++-----------
 drivers/scsi/libiscsi.c              |   19 +++++++------------
 drivers/scsi/libsas/sas_scsi_host.c  |    4 ++--
 drivers/scsi/lpfc/lpfc_scsi.c        |    9 ++++-----
 drivers/scsi/mpt2sas/mpt2sas_scsih.c |    6 +++---
 drivers/scsi/qla2xxx/qla_os.c        |   11 +++--------
 drivers/scsi/qla4xxx/ql4_os.c        |   10 +++-------
 drivers/scsi/scsi_debug.c            |   16 +++++++---------
 include/scsi/scsi_host.h             |   14 ++++++++++++++
 15 files changed, 68 insertions(+), 80 deletions(-)
Signature · 1 line
1.7.2.3