On Thu, 2010-09-16 at 23:25 +0200, Andi Kleen wrote: > > I asked James about getting Vasu's unlocked_qcmds=1 patch merged, but he > > convinced me that doing conditional locking while is very simple, is not > > the proper way for getting this resolved in mainline code. I think in > > the end this will require a longer sit down to do a wholesale conversion > > of all existing SCSI LLD drivers, and identifing the broken ones that > > still need a struct Scsi_Host->host_lock'ed SHT->queuecommand() for > > whatever strange & legacy reasons. > > The standard way to do that would be to first move the lock down > into the drivers (similar to how it has been done with the BKL). > This would be a fairly mechanic mindless patch. Lots of typing, > but not really a lot of real code review needed. > > Then next step the drivers who know they don't want it can remove it. Well, the main bit is finding those drives that actually call some form of struct Scsi_Host->host_lock unlock() -> do_work() -> lock() from within their own ->queuecomamnd() caller, and avoid running into the big ugly deadlock that would happen here.. I know that Open-iSCSi and my own iSCSI Initiator do this "optimization", but I am not sure which other LLDs also do this as well.. Best, --nab -- 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