SPC-4: Late letter ballot comment READ ATTRIBUTE

Kevin D Butt kdbutt at us.ibm.com
Thu Apr 11 11:41:42 PDT 2013


Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1304111_f.htm">HTML-formatted message</a>

Pat,
<<For this combination:
b.	cache=1b: 
B.	Medium present but MAM is not accessible: 
a.	cached attribute information exists; 
The response should be GOOD status with attributes returned. 
It sounds like a medium is loaded, the MAM is not available AND the cached 
attribute data from a previous medium load is being returned.  I am not 
sure that is a good idea.  But maybe that is what this statement is 
addressing:
>>
This scenario could only occur prior to the beginning of a load, since the 
load clears cached attributes.	This scenario would be the case where MAM 
is read and cached then the volume is unloaded but is still detected as 
present in the loader tray.
Stepping back and looking at how to best organize the descriptions in the 
READ ATTRIBUTE command I suggest replacing the existing text about the 
cache bit and about medium present, etc shown here (between the << and >>) 
with the text that follows it.
<<
If the medium is present but the medium auxiliary memory is not 
accessible, the READ ATTRIBUTE command shall be terminated with CHECK 
CONDITION status, with the sense key set to MEDIUM ERROR, and the 
additional sense code set to LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT 
ACCESSIBLE.
If the medium auxiliary memory is not operational, the READ ATTRIBUTE 
command shall be terminated with CHECK CONDITION status, with the sense 
key set to MEDIUM ERROR, and the additional sense code set to AUXILIARY 
MEMORY READ ERROR.
A CACHE bit set to one specifies that, if medium is not present, then the 
device server may report attribute information cached from the most 
recently mounted medium. A CACHE bit set to zero specifies that the device 
server shall not report attribute information cached from the most 
recently mounted medium. The READ ATTRIBUTE command shall be terminated 
with CHECK CONDITION status, with the sense key set to NOT READY, and the 
additional sense code set to MEDIUM NOT PRESENT if the CACHE bit set to:
a) zero, and medium auxiliary memory is not accessible because there is no 
medium present; or
b) one, and the device server does not have a cache of attribute 
information read from the most recently mounted medium.
If medium is mounted and the CACHE bit is supported, then attribute 
information shall be reported for the mounted medium and the CACHE bit 
shall be ignored.
Attribute information from cache may or may not be the complete set of 
attribute information from the most recently mounted medium. The device 
server shall clear cached attribute information at the start of a medium 
load.
>>
Caching of either a subset or the complete set of attribute information 
|from the most recently mounted medium may be supported.  If caching of 
attributes is supported, then setting the CACHE bit to one shall be 
supported.
A CACHE bit is set to one specifies that the device server may report 
attribute information cached from the most recently mounted medium.  A 
CACHE bit set to zero specifies that the device server shall not report 
attribute information cached from the most recently mounted medium. If 
cached attribute information is not reported (e.g., the CACHE bit is set 
to zero or the CACHE bit is set to one and there is no cached attributes 
available) and there is no medium present, then the command shall be 
terminated with CHECK CONDITION status, with the sense key set to NOT 
READY, and the additional sense code set to MEDIUM NOT PRESENT.  If cached 
attribute information is not available (e.g., the CACHE bit is set to 
zero) and the medium is present but the medium auxiliary memory is not 
accessible, then the READ ATTRIBUTE command shall be terminated with CHECK 
CONDITION status, with the sense key set to MEDIUM ERROR, and the 
additional sense code set to LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT 
ACCESSIBLE.
If the medium auxiliary memory is not operational, the READ ATTRIBUTE 
command shall be terminated with CHECK CONDITION status, with the sense 
key set to MEDIUM ERROR, and the additional sense code set to AUXILIARY 
MEMORY READ ERROR.
Thanks,
Kevin D. Butt
SCSI & Fibre Channel Architect, Tape Firmware
Data Protection & Retention
MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744
Tel: 520-799-5280
Fax: 520-799-2723 (T/L:321)
Email address: kdbutt at us.ibm.com
http://www-03.ibm.com/servers/storage/ 
From:	Patrick Kiebach <Patrick.Kiebach at quantum.com>
To:	Kevin D Butt/Tucson/IBM at IBMUS, T10 Reflector <t10 at t10.org>, 
"curtis.ballard at hp.com" <curtis.ballard at hp.com>, Paul Suhler 
<Paul.Suhler at quantum.com>, Dennis Appleyard <dennis.appleyard at oracle.com>, 
Date:	04/11/2013 09:38 AM
Subject:	RE: SPC-4: Late letter ballot comment READ ATTRIBUTE
TYPO:
<<The READ ATTRIBUTE command shall be terminated with CHECK CONDITION 
status, with the sense key set to MEDIUM ERROR, and the additional sense 
code set to LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT ACCESSIBLE is if 
the cache bit is set to one and the device server does not have a cache of 
attribute information read from the most recently mounted medium and the 
medium auxiliary memory is not accessible.>> 
For this combination:
b.	cache=1b: 
B.	Medium present but MAM is not accessible: 
a.	cached attribute information exists; 
The response should be GOOD status with attributes returned. 
It sounds like a medium is loaded, the MAM is not available AND the cached 
attribute data from a previous medium load is being returned.  I am not 
sure that is a good idea.  But maybe that is what this statement is 
addressing:
==== Explanation ==== 
Since the requirement is "shall clear cached attribute information at the 
start of a medium load" it is possible, even if cache=1b, to have no 
cached attributes when medium is present and MAM is not accessible.  This 
would be during the first part of the load.  This case was previously 
ignored when the cache bit was brought in. 
I like the idea of a table, but maybe look at it like this:
Medium not present
     Cache=0b
a. Cached MAM accessible   => NOT READY, MEDIUM NOT PRESENT
b. Cached MAM inaccessible => NOT READY, MEDIUM NOT PRESENT
     Cache=1b
a. Cached MAM accessible   => GOOD status, attributes returned
b. Cached MAM inaccessible => NOT READY, MEDIUM NOT PRESENT
Medium present
     Cache=0b
a. MAM accessible   => GOOD status, attributes returned
b. MAM inaccessible => MEDIUM ERROR
MAM Condition -
I.	Not operational => AUXILIARY MEMORY READ ERROR
II.    Not accessible  => AUXILIARY MEMORY NOT ACCESSIBLE
     Cache=1b
	  This bit ignored as medium is present, see above Medium present, 
cache=0b.
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Kevin D 
Butt
Sent: Friday, March 29, 2013 10:42 AM
To: T10 Reflector; curtis.ballard at hp.com; Paul Suhler; Dennis Appleyard
Subject: SPC-4: Late letter ballot comment READ ATTRIBUTE
I have noticed an issue with SPC-4 READ ATTRIBUTE command and the new 
CACHE bit. The definition seems to be incomplete and misses the case where 
cache=1b, the medium is present but there is no attribute data cached. 
I am requesting a late letter ballot comment to address this issue of 
cache=1b, MAM inaccessible, and not attribute information is cached. 
SPC-4 in the beginning of the READ ATTRIBUTE command should be modified to 
read: 
If the medium is present<< and the cache bit is set to zero>> but the 
medium auxiliary memory is not accessible, the READ ATTRIBUTE command 
shall be terminated with CHECK CONDITION status, with the sense key set to 
MEDIUM ERROR, and the additional sense code set to LOGICAL UNIT NOT READY, 
AUXILIARY MEMORY NOT ACCESSIBLE. 
If the medium auxiliary memory is not operational, the READ ATTRIBUTE 
command shall be terminated with CHECK CONDITION status, with the sense 
key set to MEDIUM ERROR, and the additional sense code set to AUXILIARY 
MEMORY READ ERROR. 
and in the description of the CACHE bit: 
A CACHE bit set to one specifies that, if medium is not present, then the 
device server may report attribute information cached from the most 
recently mounted medium. A CACHE bit set to zero specifies that the device 
server shall not report attribute information cached from the most 
recently mounted medium. The READ ATTRIBUTE command shall be terminated 
with CHECK CONDITION status, with the sense key set to NOT READY, and the 
additional sense code set to MEDIUM NOT PRESENT if the CACHE bit set to: 
a) zero, and medium auxiliary memory is not accessible because there is no 
medium present; or 
b) one, and the device server does not have a cache of attribute 
information read from the most recently mounted medium <<and the medium is 
not present>>. 
<<The READ ATTRIBUTE command shall be terminated with CHECK CONDITION 
status, with the sense key set to MEDIUM ERROR, and the additional sense 
code set to LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT ACCESSIBLE is the 
cache bit is set to one and the device server does not have a cache of 
attribute information read from the most recently mounted medium and the 
medium auxiliary memory is not accessible.>> 
If medium is mounted and the CACHE bit is supported, then <<attribute 
information shall be reported for the mounted medium and >>the CACHE bit 
shall be ignored. 
Attribute information from cache may or may not be the complete set of 
attribute information from the most recently mounted medium. The device 
server shall clear cached attribute information at the start of a medium 
load. 
==== Explanation ==== 
Since the requirement is "shall clear cached attribute information at the 
start of a medium load" it is possible, even if cache=1b, to have no 
cached attributes when medium is present and MAM is not accessible.  This 
would be during the first part of the load.  This case was previously 
ignored when the cache bit was brought in. 
The unique conditions are: 
a.	cache=0b: 
A.	Medium not present: 
a.	cached attribute information exists;
The response should be NOT READY, MEDIUM NOT PRESENT 
b.	cached attribute information does not exist; 
The response should be NOT READY, MEDIUM NOT PRESENT
B.	Medium present but MAM is not accessible: 
a.	cached attribute information exists; 
The response should be MEDIUM ERROR, LOGICAL UNIT NOT READY AUXILIARY 
MEMORY NOT ACCESSIBLE 
b.	cached attribute information does not exist; 
The response should be MEDIUM ERROR, LOGICAL UNIT NOT READY AUXILIARY 
MEMORY NOT ACCESSIBLE
C.	Medium present but MAM is not operational 
The response should be MEDIUM ERROR, AUXILIARY MEMORY READ ERROR
b.	cache=1b: 
A.	Medium not present: 
a.	cached attribute information exists; 
The response should be GOOD status with attributes returned. 
b.	cached attribute information does not exist; 
The response should be NOT READY, MEDIUM NOT PRESENT
B.	Medium present but MAM is not accessible: 
a.	cached attribute information exists; 
The response should be GOOD status with attributes returned. 
b.	cached attribute information does not exist; 
The response should be MEDIUM ERROR, LOGICAL UNIT NOT READY AUXILIARY 
MEMORY NOT ACCESSIBLE
<<Note that this case is not specified in the standard, but is what 
logically follows>>
C.	Medium present but MAM is not operational 
The response should be MEDIUM ERROR, AUXILIARY MEMORY READ ERROR
Kevin D. Butt
SCSI & Fibre Channel Architect, Tape Firmware
Data Protection & Retention
MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744
Tel: 520-799-5280
Fax: 520-799-2723 (T/L:321)
Email address: kdbutt at us.ibm.com
http://www-03.ibm.com/servers/storage/ 



More information about the T10 mailing list