Re: [2.6.25] scsi mid layer: add a time threshold to force device to completed command queued for a long time.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxxxx> 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
>
>
>
--
To unsubscribe from this list: 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux