From: "Gwendal Grignou" <gwendal@google.com>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: [2.6.25] scsi mid layer: add a time threshold to force device to completed command queued for a long time.
Date: Mon, 24 Mar 2008 16:53:32 -0700 [thread overview]
Message-ID: <e7510f760803241653t79aa4bc3p1bc2595ff6d39508@mail.gmail.com> (raw)
In-Reply-To: <1205286251.2941.84.camel@localhost.localdomain>
Hi James,
Thanks for the input, I am rethinking my patch. I agree with your
second and third points.
However, I am not using tag_map for this feature:
In blk_queue_start_tag(), I assumed q->tag_busy_list contains the list
of requests send to given device when q is tagged.
q is the one managed by scsi_request_fn(), allocated in
scsi_alloc_sdev() by scsi_alloc_queue(); I believe it is unique per
scsi device.
q->tag_busy_list is not shared by several device, can't I use it to
track requests send to a given disk?
Let me know if I missed something.
Thanks,
Gwendal.
On Tue, Mar 11, 2008 at 6:44 PM, James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
> On Tue, 2008-03-11 at 17:41 -0700, Gwendal Grignou wrote:
> > Please ignore the patch I sent earlier, it was out of context.
> > [scsi_sysfs: Fix cut and paste errors]
> > This patch allows to throttle command queuing to a device, if
> > older commands are outstanding for too long already.
...
>
> Firstly there's a structural problem with this: you don't take into
> account the fact that the tag map may be shared, so the first entry in
> the tag list may belong to a completely different device.
>
> Secondly, this req->timeout_time_thres is really at the wrong layer:
> it's only ever set and read from SCSI, so there's not really a good
> reason to place it in the request ... it should probably be in the
> command. Additionally, cmnd->jiffies_at_alloc already exists, so you
> can probably get it do do everything you need without adding even a
> parameter to the command.
>
> Finally, it doesn't look like it will work well with error handling: we
> use the ->queuecommand path for certain error handling commands; if the
> device is stopped and we've passed the threshold, this will reject the
> error handling commands as well. The basic problem here is that the tag
> is held in the block layer and isn't released until the command is
> completed (after error handling is done).
>
> James
>
>
>
prev parent reply other threads:[~2008-03-24 23:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-12 0:41 [2.6.25] scsi mid layer: add a time threshold to force device to completed command queued for a long time Gwendal Grignou
2008-03-12 1:44 ` James Bottomley
2008-03-24 23:53 ` Gwendal Grignou [this message]
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=e7510f760803241653t79aa4bc3p1bc2595ff6d39508@mail.gmail.com \
--to=gwendal@google.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=linux-scsi@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox