From: Brian King <brking@us.ibm.com>
To: Luben Tuikov <luben_tuikov@adaptec.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
SCSI development list <linux-scsi@vger.kernel.org>,
"Mike R." <turbanator1@verizon.net>
Subject: Re: Incorrect response to SK/ASC/ASCQ = x 02/04/01 (becoming ready)
Date: Tue, 24 Aug 2004 17:04:27 -0500 [thread overview]
Message-ID: <412BBB6B.4000701@us.ibm.com> (raw)
In-Reply-To: <412A08D9.7020502@adaptec.com>
Luben Tuikov wrote:
> Alan Stern wrote:
>
>> The SCSI core doesn't react properly when it receives SK/ASC/ASCQ = x
>> 02/04/01 = Not Ready, Logical unit in process of becoming ready.
>>
>> The core is complex enough that I can't tell exactly what's wrong or how
>> it should be fixed. That particular sense data combination is spotted in
>> two different places: scsi_lib.c:scsi_io_completion() and
>> scsi_error.c:scsi_check_sense(). It's not clear which one is causing the
>> problem -- maybe they both are.
>>
>> Anyway, the reaction in both routines is to requeue the request for
>> immediate retry. Obviously that's the wrong thing to do. The request
>> should be retried, yes, but only after a delay of, say, a second or
>> so. (Presumably the queue should remain blocked during that time.)
>> And this
>> should keep happening for up to maybe 30 seconds.
>
>
> If the queue is a _general_ SCSI queue on which _any_ kind of
> SCSI command can be queued to the LU/target (i.e. not necessarily
> medium access), then you must _not_ block it. HOQ task attribute
> commands could be sent which may operate other components of the
> LU/target.
>
> But you should block the IO (R/W) general queue, yes. _A_ way
> to do this is to send START STOP UNIT (0x1B) with the IMMED
> bit set to 0. When the command completes, you'll get status
> and set the device to active, unblock the IO queue, etc.
Is there any way you can reuse the 02/04/02 handling code in
scsi_error.c? It could probably be generalized a bit to handle both.
--
Brian King
eServer Storage I/O
IBM Linux Technology Center
next prev parent reply other threads:[~2004-08-24 22:04 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-22 16:21 Incorrect response to SK/ASC/ASCQ = x 02/04/01 (becoming ready) Alan Stern
2004-08-22 22:55 ` Nathan Bryant
2004-08-22 23:32 ` James Bottomley
2004-08-22 23:56 ` Burn Alting
2004-08-23 15:31 ` James Bottomley
2004-08-23 17:08 ` Burn Alting
2004-08-26 2:54 ` Jeremy Higdon
2004-08-26 15:38 ` James Bottomley
2004-08-26 22:36 ` Jeremy Higdon
2004-08-27 0:03 ` Douglas Gilbert
2004-08-26 15:55 ` PATCH: (as355) Fix test for valid sense data present Alan Stern
2004-08-26 16:09 ` James Bottomley
2004-08-26 16:59 ` Alan Stern
2004-08-26 17:27 ` James Bottomley
2004-08-26 19:32 ` Alan Stern
2004-08-26 23:36 ` Douglas Gilbert
2004-08-26 17:20 ` Proposal for fixing READ_CAPACITY Alan Stern
2004-08-23 15:10 ` Incorrect response to SK/ASC/ASCQ = x 02/04/01 (becoming ready) Luben Tuikov
2004-08-23 16:05 ` Nathan Bryant
2004-08-23 18:29 ` Luben Tuikov
2004-08-24 22:04 ` Brian King [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-08-26 15:21 Pat LaVarre
2004-08-26 15:29 ` Pat LaVarre
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=412BBB6B.4000701@us.ibm.com \
--to=brking@us.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=luben_tuikov@adaptec.com \
--cc=stern@rowland.harvard.edu \
--cc=turbanator1@verizon.net \
/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.