From: Tejun Heo <htejun@gmail.com>
To: ltuikov@yahoo.com
Cc: Jeff Garzik <jgarzik@pobox.com>,
hch@lst.de, James.Bottomley@SteelEye.com,
alan@lxorguk.ukuu.org.uk, albertcc@tw.ibm.com,
arjan@infradead.org, linux-ide@vger.kernel.org,
linux-scsi@vger.kernel.org
Subject: Re: [PATCH 1/2] SCSI: implement scsi_eh_schedule_cmd()
Date: Mon, 03 Apr 2006 10:24:47 +0900 [thread overview]
Message-ID: <4430795F.8000703@gmail.com> (raw)
In-Reply-To: <20060402234932.96444.qmail@web31810.mail.mud.yahoo.com>
Hello, Luben.
Luben Tuikov wrote:
> --- Tejun Heo <htejun@gmail.com> wrote:
>> This patch implements scsi_eh_schedule_cmd() which provides a way to
>> directly invoke SCSI EH from drivers implementing
>> ->eh_strategy_handler. Combined with scsi_eh_flush_done_q(), this
>> gives such drivers complete control over when and how to invoke EH and
>> handle failed commands.
>
> Hi Tejun,
>
> I sent an almost identical patch, albeit much more general, see this:
> http://marc.theaimsgroup.com/?l=linux-scsi&m=113833937421677&w=2
>
> Here is the core of it:
> --start-quote--
> This function requests that SCSI Core start recovery for the
> command by deleting the timer and adding the command to the eh
> queue. It can be called by either LLDDs or SCSI Core. LLDDs who
> implement their own error recovery MAY ignore the timeout event if
> they generated scsi_req_abort_cmd.
>
> void scsi_req_abort_cmd(struct scsi_cmnd *cmd)
> {
> if (!scsi_delete_timer(cmd))
> return;
> scsi_times_out(cmd);
> }
> --end-quote---
>
> To have a consistent and complete error recovery solution, given
> the current SCSI Core infrastructure, as is requred for your SATA effort,
> and other (protocol) work, this is what one needs to implement:
>
> 1. eh_timed_out(),
> 2. eh_strategy_handler(),
> 3. scsi_req_abort_cmd() (as shown above), and finally,
> 4. scsi_req_dev_reset().
>
> I keep those in my own git trees. (Had 3 been accepted, I would've sent 4.)
Hmmm... Is scsi_req_dev_reset() similar to scsi_eh_schedule_host()? ie.
Does it request EH without scmd? If so, can you post the patch? I'm
okay with anything that works. All that I need are...
* Non-hackish way to invoke EH on scmd from drivers implementing its own
EH. DID_TIME_OUT solution James talked about in the thread isn't
enough. It needs to invoke EH whatever the command is.
* Invoking EH without scmd.
IMHO, it's better to allow such driver to tap directly into EH rather
than making it pass through normal SCSI EH decision making process
(scsi_device_disposition). It's much simpler that way.
James, can you tell us what you're thinking about this matter?
Thanks.
--
tejun
next prev parent reply other threads:[~2006-04-03 1:24 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-01 10:38 [PATCH] SCSI: implement scsi_eh_schedule() Tejun Heo
2006-04-01 20:14 ` Jeff Garzik
2006-04-02 1:15 ` Tejun Heo
2006-04-02 16:04 ` [PATCH 1/2] SCSI: implement scsi_eh_schedule_cmd() Tejun Heo
2006-04-02 16:06 ` [PATCH 2/2] SCSI: implement scsi_eh_schedule_host() Tejun Heo
2006-04-11 17:43 ` Jeff Garzik
2006-04-02 23:49 ` [PATCH 1/2] SCSI: implement scsi_eh_schedule_cmd() Luben Tuikov
2006-04-03 1:24 ` Tejun Heo [this message]
2006-04-11 17:41 ` Jeff Garzik
2006-04-11 21:28 ` Patrick Mansfield
2006-04-12 2:21 ` Tejun Heo
2006-04-12 8:24 ` Luben Tuikov
2006-04-12 16:18 ` Patrick Mansfield
2006-04-13 5:32 ` Tejun Heo
2006-04-14 8:49 ` Luben Tuikov
2006-04-14 12:02 ` Tejun Heo
2006-04-19 18:49 ` Luben Tuikov
2006-04-20 2:07 ` Tejun Heo
2006-04-20 13:01 ` Christoph Hellwig
2006-04-21 2:22 ` Tejun Heo
2006-04-20 19:23 ` Luben Tuikov
2006-04-21 2:39 ` Tejun Heo
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=4430795F.8000703@gmail.com \
--to=htejun@gmail.com \
--cc=James.Bottomley@SteelEye.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=albertcc@tw.ibm.com \
--cc=arjan@infradead.org \
--cc=hch@lst.de \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=ltuikov@yahoo.com \
/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.