Re: Full hostlock pushdown available

Nicholas A. Bellinger
2010-10-28T19:36:58Z

On Thu, 2010-10-28 at 14:28 -0500, James Bottomley wrote:
> On Thu, 2010-10-28 at 17:05 +0200, Andi Kleen wrote:
> > Here's the promised attempt to do a full host_lock pushdown. This
> > was done using coccinelle and some manual adjustments.
> >
> > This is just a dumb pushdown of host lock and serial number into
> > the driver, no attempt to remove any locks yet.
> >
> > Currently lightly tested, but compiles with allmodconfig on 32bit x86.
> >
> > I made no attempt to automatically add maintainers to Cc.
> >
> > I'm not posting the patches because they are numerous and boring,
> > but it's available in git.
> >
> > This will likely bitrot quickly so if it's decided to do it this
> > way I would prefer if this was merged quickly.
>
> OK, so can you post an actual diff? It obviously has to be done in one
> commit rather than the 87 you have.
>

So it appears this series will still need the atomic_add_return() usage
in scsi_cmd_get_serial() and drop host_lock usage from those LLDs that
we know can be converted to 'host_lock-less', yes..?

Following Chrisof's and David's comments for zfcp and srp host_lock push
down this morning, the latest v9 code has been pushed into:

git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-4.0.git host_lock-less-for-37-v9

+1 for ak for actually coding this up in coccinelle. ;)

> > Issues found:
> > - I found a clear deadlock in aha1740, not sure if that driver ever
> > worked since host_lock was introduced. Anyways I attempted to work
> > around it. But if it's really that unused it may be better to
> > simply drop it.
>
> I certainly don't have the hardware ... and I don't think we've had any
> bug reports for a while
>
> > - I'm not sure how to compile cciss_scsi, is it even used?
>
> It's used for tape support in the cciss driver. It's actually #included
> into the cciss.c file (don't ask, I'll only start to cry) and is
> conditioned on the CISS_SCSI_TAPE Kconfig variable.
>

I just did a 'make drivers/block' to compile this code..

Thanks!

--nab