Issues with 14-128r2: unmap clarifications
Frederick.Knight at netapp.com
Mon Sep 8 14:09:52 PDT 2014
Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1409082_f.htm">HTML-formatted message</a>
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Nadesan
Sent: Monday, September 08, 2014 2:09 PM
To: T10 Reflector
Subject: Issues with 14-128r2: unmap clarifications
The change at the top of page 3 for section 4.11.3 (completing a sanitize
operation) is a new requirement on drives. The proposed text says,
the initial condition for every LBA should be anchored (see 18.104.22.168) or
deallocated (see 22.214.171.124) (i.e.,
LBAs that have been sanitized should be set to zero and autonomous LBA
transitions (see 126.96.36.199)
result in the LBAs becoming anchored or deallocated); and
Currently a Cryptographic Sanitize operation is not required to set any
particular value for the user data. The host is only guaranteed consistent
garbage data afterwards. However this new text requires all zero data to be
returned for the read command. I think this part of the change should be
clarified or struck.
This is not a requirement, it is inside an i.e. - that means it is further
clarifying the previous statements - that being what it means to be anchored
or deallocated. Go look at the consequences of the anchored state (188.8.131.52)
and the deallocated state (184.108.40.206), and you'll see that this "i.e." text is
really just explaining the consequences of being in those states. It is just
a restatement of what is ready there, not a new requirement.
Someone with a better understanding on thin provisioned logical units should
look at the middle of page 4 at the text
For a thin provisioned logical unit (see 220.127.116.11) with the ANC_SUP bit set to
zero in the Logical Block Provisioning
VPD page (see 6.6.4):
b) an ANCHOR bit set to one specifies that the device server shall terminate
the command with CHECK
CONDITION status with the sense key set to ILLEGAL REQUEST and the additional
sense code set
to INVALID FIELD IN CDB; and
a) an ANCHOR bit set to zero specifies that any LBA on which an unmap
operation is performed shall
I am guessing that the wording on item a (second item on this list) should be
a "should" and not a "shall"; Or that the wording should be a copy of item a
|from the previous list.
The a) text is correct. If ANC_SUP is set to zero, then the anchor state is
not supported; only the mapped and deallocated states are supported (see:
18.104.22.168 LBP state machine for thin provisioned logical units not supporting
anchored LBAs). Therefore, when an unmap operation IS performed (remember,
unmap operations occur on per a LBA basis); that LBA has only one choice for
a state - it can only be deallocated. It is not a SHOULD, it is a SHALL.
Remember, we are not talking about an unmap command that may or may not
result in unmap operations, we are talking about what happens WHEN the actual
unmap operation occurs.
If the LBA did not transition to the deallocated state and the LBA is still
in the mapped state, then the unmap operation was NOT performed.
BTW, noting that item numbering needs to be corrected in a number of lists
(example at above location).
Have a nice day.
More information about the T10