> -----Original Message----- > From: Nicholas A. Bellinger [mailto:nab@xxxxxxxxxxxxxxx] > Sent: Monday, December 20, 2010 2:52 AM > To: linux-scsi; linux-kernel; James Bottomley; Jeff Garzik; Christoph > Hellwig; FUJITA Tomonori; Hannes Reinecke; Mike Christie > Cc: Mike Anderson; Tejun Heo; Vasu Dev; Tim Chen; Andi Kleen; Ravi > Anand; Andrew Vasquez; Joe Eykholt; James Smart; Douglas Gilbert; adam > radford; Desai, Kashyap; DL-MPT Fusion Linux; Nicholas Bellinger > Subject: [PATCH 00/12] LLD host_lock-less conversion status for .38 > > From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> > > Greetings James and Co, > > Attached are the current set of LLD host_lock-less conversions in the > queue > for .38, that have now been pushed into lio-core-2.6.git/lock_less- > LLDs-for-38-v3 > > New in this v3 series are the megaraid_sas LLD changes necessary to run > in > host_lock-less mode, which have been tested thus far in legacy x86 > interrupt > pin mode using 8708EM2 QEMU HBA emulation into KVM guest using TCM_Loop > virtual SCSI LUNs. > > This series also drops the drivers/scsi patches that have been resolved > with > the following (Thanks!) > > commit 459dbf72e4d2b4aa13620e6b70d54f098547bf13 > Author: James Bottomley <James.Bottomley@xxxxxxx> > Date: Wed Nov 17 10:10:57 2010 -0600 > > [SCSI] Eliminate error handler overload of the SCSI serial number > > At this point the remaining code TODO items for the LLD conversion > patches > include > > *) libiscsi: NULL sc->scsi_done() callback in exception path in > iscsi_queuecommand(). > The last status on this from Mike Christie was: > > "This will NULL pointer. See a couple lines above where we NULL it. > iscsi_free_task checks if the scsi_done pointer is set and if it is it > will call scsi_done. > > It is a hack to prevent the normal completion path from calling > scsi_done. For the case where we return SCSI_MLQUEUE_TARGET_BUSY (the > prepd_reject case) we need something to prevent scsi_done from getting > called. > > For the return 0/prepd_fault case we can just call sc->scsi_done, but > we > have to move some code around." > > mnc, have you been able to take another look at this..? > > *) mpt2sas: Locking considerations for firmware specific data > structures > > A patch to mptsas was included originally to convert to host_lock less > w/ interrupts > disabled externally here: > > http://git.kernel.org/?p=linux/kernel/git/nab/lio-core- > 2.6.git;a=commitdiff;h=87ba9071b46f37f1adab1732d41b87bf195d191f > > but due to concerns from jgarzik this had been dropped from the > lock_less-LLDs-for-38-v2 > during the last round. The feedback from Kashyap @ LSI is that mpt2sas > technically should be > able to run in host_lock-less, but there needs to be some explict > clarification in the code > for the conversion to happen. More details are here: > > http://marc.info/?l=linux-scsi&m=129022827729386&w=2 > > Kashyap, can you take another look at this and make sure this is > acceptable..? Nicholas, I have replied my input on the same thread. > > *) megaraid_sas: Running in host_lock-less mode with MSI-X interrupts > > This has not been tested yet, but I would like to get some review from > the LSI > megaraid_sas folks now that their patches to enable MSI-X interrupts > has been sent > to linux-scsi. > > AdamR, any thoughts or comments to add here..? > > ----------------------------------------------------------------------- > ----------- > > So at this point the next steps will be to shaking out breakage in > corner cases for > struct scsi_device hotplug removal, more testing+validation, and more > LLD code review. > > For the CC'ed LLD maintainers, please have another look at the changes > to enable > host_lock-less operation within your code and send the necessary ACKs > to linux-scsi > at your earliest convience. Many thanks to everyone who has > contributed! > > If anyone has any other patches, comments or concerns please let me > know and they > will be queued up for the next v4 for-38 round. > > Best Regards, > > Signed-off-by: Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx> > > Nicholas Bellinger (12): > 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 > 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 > megaraid_sas: Add smp_mb__after_atomic_*() for > instance->fw_outstanding > megaraid_sas: Convert instance->issuepend_done to atomic_t > megaraid_sas: Convert SHT->queuecommand() to run host_lock-less > > 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 | 10 +--- > drivers/scsi/libsas/sas_scsi_host.c | 12 +---- > drivers/scsi/lpfc/lpfc_scsi.c | 9 ++-- > drivers/scsi/megaraid/megaraid_sas.c | 85 ++++++++++++++++++++++---- > -------- > drivers/scsi/megaraid/megaraid_sas.h | 2 +- > 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, 107 insertions(+), 100 deletions(-) > > -- > 1.7.3.4 -- 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