On Fri, May 27, 2005 at 06:22:32PM +0100, Christoph Hellwig wrote: > On Fri, May 27, 2005 at 01:04:49PM -0400, James Bottomley wrote: > > On Fri, 2005-05-27 at 12:49 -0400, Jeff Garzik wrote: > > > I'm also curious to see what others think about removing the host_lock > > > acquisition from ->queuecommand() calls. > > > > Personally I don't see the need for it for two reasons: > > > > 1) There are certain atomic ops in the mid layer issue that necessitate > > we acquire it anyway (serial number generation and state model checking) > > 2) All queuecommand routines should move to the model of either issuing > > or rejecting the command ... if they do that, often there's no need for > > the mucking with lock, they remain locked throughout. > > > > On point 2), look at the changes to the aic7xxx driver. Once its > > internal issue queueing was pulled out, it no longer needs to muck with > > the host lock in ahc_linux_queue. If you don't enter this locked, it > > would just have to take it at the top and release it before return, as > > would most other well written drivers. > > The only think host_lock in ->queuecommand protects against is the > interrupt handler, which is completely in the driver. At which point > it makes lots of sense to use a driver-private lock for it. Even better > we can get the scsi subsystem out of the irq disabling business once > all drivers use their own locks in the interrupt handler. Don't forget... We still need to have some mechanism for handling the request_queue's locking. Jeff - : 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