From: Luben Tuikov <ltuikov@yahoo.com>
To: Tejun Heo <htejun@gmail.com>
Cc: Luben Tuikov <luben_tuikov@adaptec.com>,
Albert Lee <albertcc@tw.ibm.com>, Jeff Garzik <jgarzik@pobox.com>,
linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org,
Doug Maxey <dwm@maxeymade.com>
Subject: Re: [RFC] libata new EH document
Date: Wed, 31 Aug 2005 21:38:49 -0700 (PDT) [thread overview]
Message-ID: <20050901043850.15186.qmail@web51611.mail.yahoo.com> (raw)
In-Reply-To: <20050901034429.GA3418@htj.dyndns.org>
--- Tejun Heo <htejun@gmail.com> wrote:
> As implementing autosensing will probably need rewriting failed qc
> for REQUEST SENSE command, I'm opposing it. My proposal is to do the
> following, which, in effect, should be equivalent to autosensing.
>
> 1. ATAPI CHECK SENSE occurs
> 2. libata fails the command
> 3. SCSI sees failure code but no sense data, SCSI EH invoked
> 4. libata EH invoked
> 5. REQUEST SENSE
> 6. sense data acquired
> 7. scsi_decide_disposition() called (this needs to be exported from SCSI)
> 8. libata handles the failed qc according to the verdict.
Hmm, yes. It sounds good, except can you make it so that step 3
doesn't exist, ever. This means that you would _reduce_ the
double "bouncing" between eh's _and_ implement autosense.
SCSI Core should never know what happened. I.e. if the command
has completed with CHECK SENSE, sense data _is_ present => "autosense".
> This is very similar to what SCSI EH currently does for commands
> without sense data.
Yes, you're right -- it is very similar to what SCSI EH currently does.
Unfortunately it isn't quite correct.
> As ATAPI device's queue depth is always one (ignoring SERVICE cruft
> everyone seems to hate), I don't think there will be any noticeable
> performance penalty as James was describing in the other mail in this
> thread.
What you can do is keep a qc around to request sense immediately
afterwards. If _that_ qc fails, then you know you need the big hammer.
Luben
next prev parent reply other threads:[~2005-09-01 4:38 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20050829061124.GA2725@htj.dyndns.org>
2005-08-30 9:10 ` [RFC] libata new EH document Albert Lee
2005-08-30 10:26 ` Tejun Heo
2005-08-30 14:32 ` Luben Tuikov
2005-09-01 1:17 ` Tejun Heo
2005-09-01 2:22 ` Jeff Garzik
2005-09-01 2:42 ` Tejun Heo
2005-09-01 3:33 ` Luben Tuikov
2005-09-01 3:30 ` Luben Tuikov
2005-09-01 3:44 ` Tejun Heo
2005-09-01 4:38 ` Luben Tuikov [this message]
2005-09-01 5:44 ` Tejun Heo
2005-09-01 5:54 ` Jeff Garzik
2005-09-01 13:24 ` James Bottomley
2005-09-01 21:40 ` Luben Tuikov
2005-09-01 21:46 ` Jeff Garzik
2005-09-01 22:09 ` Luben Tuikov
2005-09-01 22:27 ` Jeff Garzik
2005-09-01 23:17 ` Luben Tuikov
2005-09-02 7:09 ` Stefan Richter
2005-09-01 22:22 ` Luben Tuikov
2005-09-01 22:31 ` Jeff Garzik
2005-09-01 21:55 ` James Bottomley
2005-09-01 22:07 ` Luben Tuikov
2005-09-01 22:23 ` James Bottomley
2005-09-01 22:36 ` Luben Tuikov
2005-09-01 23:01 ` James Bottomley
2005-09-01 23:03 ` Luben Tuikov
2005-09-01 23:27 ` Luben Tuikov
2005-09-01 2:22 ` Jeff Garzik
2005-08-30 14:27 ` James Bottomley
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=20050901043850.15186.qmail@web51611.mail.yahoo.com \
--to=ltuikov@yahoo.com \
--cc=albertcc@tw.ibm.com \
--cc=dwm@maxeymade.com \
--cc=htejun@gmail.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=luben_tuikov@adaptec.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox