linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: ltuikov@yahoo.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: Thu, 01 Sep 2005 14:44:00 +0900	[thread overview]
Message-ID: <43169520.6040008@gmail.com> (raw)
In-Reply-To: <20050901043850.15186.qmail@web51611.mail.yahoo.com>


  Hello, Luben.

Luben Tuikov wrote:
> --- 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.
> 

  libata EH is invoked from SCSI EH via hostt->eh_strategy_handler(), so 
they're one - libata EH uses SCSH EH framework to operate.  I'm having 
hard time understanding what you mean by 'double bounncing'.

> 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.
> 

  Can you please elaborate why getting sense data from EH is bad idea 
for ATAPI?  For more advanced SCSI transports, I agree with you that 
autosensing is necessary with queueing and multiple initiator and etc, 
but I don't really see how requesting sense from EH would be bad for ATAPI.

> 
>> 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.

  Yes, that is also a possibility, but I was opting for REQUEST SENSE 
from EH for the following two reasons.

  a. As we're gonna have facilities to issue EH cmds from EH, ATAPI can 
just join the crowd without implementing separate mechanism to issue 
REQUEST SENSE.

  b. It's not a hot path and I think performance gain from implementing 
autosense would be negligible.

  Thanks.

-- 
tejun

  reply	other threads:[~2005-09-01  5:44 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-29  6:11 [RFC] libata new EH document Tejun Heo
2005-08-29  6:13 ` Tejun Heo
2005-08-30  9:10 ` 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
2005-09-01  5:44               ` Tejun Heo [this message]
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
2005-09-07  8:25 ` Jeff Garzik

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=43169520.6040008@gmail.com \
    --to=htejun@gmail.com \
    --cc=albertcc@tw.ibm.com \
    --cc=dwm@maxeymade.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ltuikov@yahoo.com \
    --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;
as well as URLs for NNTP newsgroup(s).