From: Mike Christie <michaelc@cs.wisc.edu>
To: Jens Axboe <axboe@suse.de>
Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] blk request timeout handler: mv scsi timer code to block layer
Date: Tue, 25 Jul 2006 13:15:08 -0500 [thread overview]
Message-ID: <44C65FAC.6040505@cs.wisc.edu> (raw)
In-Reply-To: <44C646E5.30608@cs.wisc.edu>
Mike Christie wrote:
> Jens Axboe wrote:
>> On Tue, Jul 25 2006, Mike Christie wrote:
>>> For the request based multipath I thought I would need to run some code
>>> when a command times out. I did not want to duplicate the scsi code, so
>>> I did the following patches which move the scsi timer code to the block
>>> layer then convert scsi.
>>>
>>> I have tested the scsi_error.c and normal paths with iscsi. And, I have
>>> tested the normal IO paths with libata. Since libata uses the strategy
>>> handler it needs to be tested a lot more. Some of the drivers that were
>>> touching the timeout_per_command field need to be compile tested still
>>> too. I converted them, but I think some still need a "#include
>>> blkdev.h".
>>>
>>> The patches only move the scsi timer code to the block layer and hook it
>>> in so others can use it. I have not started on the abort, reset and
>>> quiesce code since it is not really needed for multipath. I wanted to
>>> see if the timer code move was ok on its own without the rest of the
>>> scsi eh move because I do not want to manage the patches out of tree
>>> with the other request multipath patches. I also wanted to check if the
>>> scsi timer code was ok in general. Maybe scsi got it wrong and needed to
>>> be rewritten :)
>> Excellent, one item off my TODO list :-). I had pending code, but not
>> completed yet.
>>
>> I had intended to make the timer addition/deletion implicit from the
>> activate/deactive rq paths, both to have it happen automatically and
>> from a cleanliness POV. That makes the timer only active when the
>> request is in the driver, and should also make the deletion implicit for
>> when the request gets requeued.
>>
>
> Ok I did that, almost. For the normal request_fn/dequeue, requeue, and
> blk softiriq completion paths the block layer handles all the timer
> addition, deletion and restarting. There is one nasty path in the scsi,
Oops, during testing and my own code review I noticed there was also
some places in the hotplug removal error paths that I used the wrong
block layer function and did not delete the timer. I will fix those up
as well.
prev parent reply other threads:[~2006-07-25 18:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-25 9:39 [PATCH 0/2] blk request timeout handler: mv scsi timer code to block layer Mike Christie
2006-07-25 9:24 ` Jens Axboe
2006-07-25 16:29 ` Mike Christie
2006-07-25 18:15 ` Mike Christie [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=44C65FAC.6040505@cs.wisc.edu \
--to=michaelc@cs.wisc.edu \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--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