public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
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
>
>
>

      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