From: Jonathan Lahr <lahr@us.ibm.com>
To: Jens Axboe <axboe@suse.de>
Cc: lahr@eng2.beaverton.ibm.com, linux-kernel@vger.kernel.org,
linux-scsi@vger.kernel.org, lse-tech@lists.sourceforge.net
Subject: Re: [Lse-tech] SCSI io_request_lock patch
Date: Wed, 14 Nov 2001 10:54:33 -0800 [thread overview]
Message-ID: <20011114105433.O26302@us.ibm.com> (raw)
In-Reply-To: <20011112130902.B26302@us.ibm.com> <20011113092311.L786@suse.de> <20011113104210.L26302@us.ibm.com> <20011114091129.H17933@suse.de>
In-Reply-To: <20011114091129.H17933@suse.de>; from axboe@suse.de on Wed, Nov 14, 2001 at 09:11:29AM +0100
Jens Axboe [axboe@suse.de] wrote:
> On Tue, Nov 13 2001, Jonathan Lahr wrote:
> > Jens Axboe [axboe@suse.de] wrote:
> > > On Mon, Nov 12 2001, Jonathan Lahr wrote:
> > > >
> > > > This is a request for comments on the patch described below which
> > > > implements a revised approach to reducing io_request_lock
> > > > contention in 2.4.
> > > >
> > > > This new version of the io_request_lock patch (siorl-v0) is
> > > > available at http://sourceforge.net/projects/lse/. It employs the
> > > > same concurrent request queueing scheme as the iorlv0 patch but
> > > > isolates code changes to the SCSI subsystem and engages the new
> > > > locking scheme only for SCSI drivers which explicitly request it.
> > > > I took this more restricted approach after additional development
> > > > based on comments from Jens and others indicated that iorlv0
> > > > impacted the IDE subsystem and was unnecessarily broad in general.
> > > >
> > > > The siorl-v0 patch allows drivers to enable concurrent queueing
> > > > through the concurrent_queue field in the Scsi_Host_Template which
> > > > is copied to the request queue. It creates SCSI-specific versions
> > > > of generic block i/o functions used by the SCSI subsystem and
> > > > modifies them to conditionally engage the new locking scheme based
> > > > on this field. It allows control over which drivers use
> > > > concurrent queueing and preserves original block i/o behavior by
> > > > default.
> > >
> > > Sorry Jonathan, but this is even more broken than the last patch. In
> > > different ways. In no particular order:
> > >
> > > o You are duplicating way too much code and exporting block
> > > internals
> >
> > The duplication is a reasonable starting point for SCSI-specific
> > functions. The block i/o design provides for exactly this type of
> > tailoring through function pointers installed in request_queue.
>
> Yes I know, I wrote most of said code :-)
And this approach makes good use of it.
> > What problem you do see with exporting block internals?
>
> It's absolutely worthless. Look, it ties in with the points I made
> below. You are exporting the merge functions for instance, and setting
> them in the queue. This will cause scsi_merge not to use it's own
> functions, broken.
As in the baseline, initialize_merge_fn overwrites these pointers:
q->back_merge_fn = scsi_back_merge_fn_;
q->front_merge_fn = scsi_front_merge_fn_;
q->merge_requests_fn = scsi_merge_requests_fn_;
> > Do you think the separation of SCSI from generic block i/o code and
> > the driver-activated control of concurrent queueing provides a path
> > for future work to reduce io_request_lock contention in SCSI/FC?
>
> Not really, but I do think it could be a viable 2.4 alternative. For 2.5
> we still want to do this the right way.
I'll try to stay apprised of the 2.5 work as it progresses.
--
Jonathan Lahr
IBM Linux Technology Center
Beaverton, Oregon
lahr@us.ibm.com
503-578-3385
next prev parent reply other threads:[~2001-11-14 18:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-12 21:09 SCSI io_request_lock patch Jonathan Lahr
2001-11-13 8:23 ` [Lse-tech] " Jens Axboe
2001-11-13 18:42 ` Jonathan Lahr
2001-11-14 8:11 ` Jens Axboe
2001-11-14 18:54 ` Jonathan Lahr [this message]
2001-11-15 10:23 ` Jens Axboe
2001-11-15 18:15 ` Jonathan Lahr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011114105433.O26302@us.ibm.com \
--to=lahr@us.ibm.com \
--cc=axboe@suse.de \
--cc=lahr@eng2.beaverton.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.