From: Andrew Vasquez <andrew.vasquez@qlogic.com>
To: Patrick Mansfield <patmans@us.ibm.com>
Cc: James Bottomley <James.Bottomley@SteelEye.com>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: Mid-layer handling of NOT_READY conditions...
Date: Sun, 30 Jan 2005 23:47:25 -0800 [thread overview]
Message-ID: <1107157645.21520.17.camel@plap> (raw)
In-Reply-To: <20050129193421.GA7573@us.ibm.com>
On Sat, 2005-01-29 at 11:34 -0800, Patrick Mansfield wrote:
> On Sat, Jan 29, 2005 at 10:44:41AM -0600, James Bottomley wrote:
> > On Fri, 2005-01-28 at 21:46 -0800, Andrew Vasquez wrote:
> > > Returning back DID_IMM_RETRY for these 'transport' related conditions
> > > would of course help in this issue -- but at the same time bring with it
> > > several side-effects which may not be desirable.
> > >
> > > So, beyond this particular circumstance, what would be considered a
> > > 'proper' return status for this type of event?
> >
> > Well, the correct return, since this is a condition from the storage, is
> > simply the check condition and the sense code (rather than having the
> > driver interpret it).
>
> But the transport hit a failure, not the storage device.
>
> I thought Andrew hit this sequence:
>
> - pull / replace cable
>
> - IO resumes but gets NOT_READY (the device could be logging back
> into the fibre or such)
>
> - a FC transport problem is hit, DID_BUSY_BUSY is returned, but
> scmd->retries has already been exhausted by the NOT_READY
>
> Did I misread something?
>
No, that's correct -- sorry about the confusion my second email caused.
I had only inquired about the 'correct' return status in the context of
avoiding the (cmd-retries > cmd->allowed) failure.
> > > > Would this be an approach to consider? Or should we tackle the problem
> > > > by addressing the quirky (cmd->retries > cmd->allowed) state?
> >
> > That's what I think the correct approach should be....we have a few
> > other quirky devices that aren't pleased with our current NOT_READY
> > handling. Were you going to look into coding up a patch for this?
>
> We don't track what errors caused a retry (doing so is too painful), or
> reset the retries. In scsi_decide_disposition() if we get a few retry
> cases for one or multiple errors, and then a different error that should
> reasonably be a retry case, we return SUCCESS instead of NEEDS_RETRY.
>
> Why not just set scmd->retries to zero in scsi_requeue_command()?
>
This is exactly what I was thinking would be a fairly straight-forward
approach at solving the problem...
> All callers are cases that we want to keep retrying if other errors are hit,
> and would fix other potential retry problems, not only the NOT_READY case.
>
given this fact. I could code up a quick patch if this would be
acceptable???
> [There is one bad looking scsi_requeue_command() for UNIT_ATTENTION that
> looks like it could retry forever, independent of this problem.]
>
We could also retry forever if the storage never transitions from its
NOT_READY state (unlikely - unless totally borken).
> Fixing the NOT_READY case to quiesce (and not incrementing retries) would
> fix the problem or make it much less likely, and is still a good idea.
>
Yes, pounding on the storage box seems like a rather unfriendly
approach :-|
--
Andrew
next prev parent reply other threads:[~2005-01-31 7:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-28 23:24 Mid-layer handling of NOT_READY conditions Andrew Vasquez
2005-01-29 5:46 ` Andrew Vasquez
2005-01-29 16:16 ` Matthew Wilcox
2005-01-29 16:44 ` James Bottomley
2005-01-29 19:34 ` Patrick Mansfield
2005-01-30 1:40 ` James Bottomley
2005-01-30 2:33 ` Douglas Gilbert
2005-01-31 7:47 ` Andrew Vasquez [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-01-31 9:46 Mid-Layer handling of NOT READY conditions EXT / DEVOTEAM VAROQUI Christophe
2005-01-31 14:07 goggin, edward
2005-01-31 16:56 Mid-layer handling of NOT_READY conditions James.Smart
2005-01-31 17:36 ` Patrick Mansfield
2005-02-01 7:21 ` Andrew Vasquez
2005-01-31 18:22 ` Andrew Vasquez
2005-01-31 19:07 James.Smart
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=1107157645.21520.17.camel@plap \
--to=andrew.vasquez@qlogic.com \
--cc=James.Bottomley@SteelEye.com \
--cc=linux-scsi@vger.kernel.org \
--cc=patmans@us.ibm.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