Request Sense Handling of Deferred Errors

Mark Evans Mark.Evans at
Tue Apr 12 12:21:06 PDT 2011

Formatted message: <a href="">HTML-formatted message</a>

Hi Rich,
Your interpretation is incorrect and inconsistent with the common practice
in the SCSI family of standards.  A "shall" means exactly what it says and
applies only to the items defined as such.  There is no implication that
what is not included in any "shall" in a definition is a "shall not".  In
fact, just the opposite is intended to be true.
I think the sentence to which you are referring reads, "Except as described
elsewhere in this subclause, the device server shall process a REQUEST SENSE
command as follows:"
There are many other requirements for a REQUEST SENSE command "...described
elsewhere in this subclause..." (e.g., when the DESC bit is set to one, and
the device server supports descriptor format sense data, "The device server
shall return descriptor format sense data (see 4.5.2) in the parameter
data.").  In this example, the device server SHALL RETURN descriptor format
sense data.  If deferred error data is available, then this is what the
device server should return for a REQUEST SENSE command in the descriptor
If some of this is unclear to you, and you have a better way to say it, send
T10 a proposal, and we'll absolutely consider it.
Please feel free to call or send an email to me with any comments or
questions that you have about this stuff. 
Mark Evans
Western Digital Corporation
5863 Rue Ferrari
San Jose, CA 95138
Email: mark.evans at
Home office: 408.746.3085
Cell: 408.391.7805 
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Richard
Deglin - SISA
Sent: Tuesday, April 12, 2011 11:12 AM
To: Knight, Frederick; Truong Nguyen - SISA; t10 at
Subject: RE: Request Sense Handling of Deferred Errors
Nevertheless, the description of REQUEST SENSE does NOT include deferred
errors in the list of returnable sense data. SPC4r30, page 373. This is a
"shall" clause and I interpret it as meaning that REQUEST SENSE shall not
return deferred error sense data because it is not explicitly listed. Of
course, it is always possible that the different sections regarding sense
data in SPC are in conflict or are ambiguous, and T10 perhaps needs to
consider this and resolve the issues.
Rich Deglin
Senior Firmware Engineer, SAS SSD
Samsung Information Systems America
Office	 408 544 5816
Cell	  408 410 6584
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Knight,
Sent: Tuesday, April 12, 2011 6:10 AM
To: Truong Nguyen - SISA; t10 at
Subject: RE: Request Sense Handling of Deferred Errors
NO.   This can be confusing, as there are 2 places where sense data is
returned.  One, is the autosense data that is associated with a command.
The second is the data buffer that is returned in response to the REQUEST
SENSE command.
>From the definition:
3.1.158 sense data: Data describing an error or exceptional condition that a
device server delivers to an application
client in the same I_T_L_Q nexus transaction (see 3.1.67) as the status or
as parameter data in response to
a REQUEST SENSE command (see 6.29). The format of sense data is defined in
The RED text is the first (autosense), the GREEN text is the second
(parameter data buffer) - notice the "OR" between the two types of sense
So, when there is a deferred error, and a REQUEST SENSE command is received,
the parameter data buffer that is returned will contain sense data that
describes the deferred error.  The autosense data associated with the
REQUEST SENSE command will be associated with the GOOD status returned for
the command itself.
Basically, a successful REQUEST SENSE command returns GOOD status (with no
autosense data); AND it returns a parameter data buffer that happens to
contain data that is in the format of sense data that describes the event
(deferred error in your example).
If the REQUEST SENSE command has a problem (an invalid field in the CDB for
example), then the command will return an error status with autosense data
that describes the problem with the command (INVALID FIELD IN CDB).  In this
case, there is NO parameter data buffer to be returned, since the command
failed.  This is what 6.29 describes.
		Fred Knight
From: Truong Nguyen - SISA [mailto:tru.nguyen at] 
Sent: Monday, April 11, 2011 11:33 PM
To: t10 at
Subject: Request Sense Handling of Deferred Errors
The Request Sense command definition in subclause 6.29 SPC4r30 states that
the "device server shall return Check Condition status for a Request Sense
command only to report exception conditions specific to the Request Sense
command itself".
Deferred errors may be indicated by returning Check Condition status as
defined in subclause 4.5.5 in SPC4r30.
In the event that the device server detects a deferred error condition, and
then subsequently receives a Request Sense command, should the deferred
error cause a Check Condition status to be returned for the Request Sense
command? It would seem not, but some clarification would be appreciated.
Truong Nguyen
Samsung Information Systems America

More information about the T10 mailing list