[T13] ZAC & ZBC - reads to unwritten logical blocks / sectors

Joe Breher Joe.Breher at hgst.com
Thu May 28 11:12:44 PDT 2015


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

Hello Curtis - thanks for weighing in. Please see responses inline...
On May 28, 2015, at 10:15 AM, Ballard, Curtis C (HP Storage)
<curtis.ballard at hp.com> wrote:
Joe,
Could you elaborate on items a) and b) in your list?  Maybe there is some
T13/ZAC difference that affects these that isn’t obvious from ZBC.
a)	Reads issued with Forced Unit Access: ZBC as you point out specifies
that reads to unwritten sectors return the initialization pattern however
there is no media behind unwritten sectors so it looks to me like the options
are returning the initialization pattern or terminating the command with an
error for attempting to read an unwritten LBA.	I don’t see either
specified in ZBC either so would have to assume that the initialization
pattern should be returned and would prefer that be clearly required.
You restate the problem as identified in yesterday's call, list the same to
possible responses of which I am aware, and with a single exception* suggest
a resolution that is the same selection between these two possibilities as do
I. Excellent.
* the exception being that reads to 'unwritten' sectors in sequential write
required zones for which the URSWRZ/UR bit is not set are already summarily
CHECK CONDITIONed.
b)	Reads issued to unmapped sectors: ZBC prohibits unmapped sectors for
Host Managed drives.
I am not sure this is the case. It could be argued that the introductory
sentence in 5.1 before table 8 (to wit: The commands for host aware zoned
block devices are listed in table 6 and SBC-4.) could be interpreted as such.
However, I would argue that this is not a strong enough statement to
constitute a 'thou shall forsake all others besides these' requirement.
Further, even if an UNMAP command were prohibited, there is nothing that
states what sort of provisioning a logical unit in a zoned block device shall
be. But this is yet another hole in the specification, and only tangentially
related to the matter at hand. Perhaps we should open a separate thread for
this topic.
If ZAC also prohibits unmapped sectors for Host Managed then this looks like
it becomes a Host Aware, Sequential Writes Preferred zone question and looks
a lot like the FUA case where reads are issued without media backing those
reads
So far, I think that we are in agreement as to the nature of reads of
unmapped sectors/logical blocks.
but in this case I believe the logical block provisioning behavior has to be
followed which would be returning a vendor specific pattern, all zeros, or a
fixed non-zero pattern
For reference, here is the applicable excerpt from zbc-r03 4.3.3.1 which I
refer to in my initial post:
A read operation on an LBA that has not been written since the last reset
write pointer operation in that write pointer zone shall return logical block
data set to the last initialization pattern that was set by:
  1.  a)  the manufacturer's default initialization pattern;
  2.  b)  the initialization pattern set by the last FORMAT UNIT command (see
SBC-4), if any; or
  3.  c)  the initialization pattern set by the last SANITIZE command with
the service action set to OVERWRITE (see SBC-4), if any.
as specified in SBC4r07b table 10.
Which essentially says [ VS | 0 | provisioning initialization pattern ] as
per the LBPRZ field, with PI set to 'all F's', where
3.1.72 provisioning initialization pattern
non-zero pattern that is the length of one logical block
I think the zbc text and sbc text are not in conflict on this matter. The
values returned for PI match what I suggest as well. There is a residual
problem, in that zbc-r03 Table 25 footnote a prohibits the Logical block
provisioning VPD page to host managed zoned block devices.
  I think the ‘initialization pattern’ for the ZAC/ZBC device would have
to match the ‘provisioning initialization pattern’.  That should probably
be specified somewhere.
I can see the logic in that. Note however that, if indeed all commands not
listed in zbc-r03 Table 8 are prohibited to a Host Managed device, then
REPORT PROVISIONING INITIALIZATION PATTERN is prohibited, and any such
requirement would seem to be therefore be unverifiable.
In summary,
- It looks like we agree upon what is logical to be returned for reads to
'unwritten' areas on a zoned block device.
- I don't think I agree that UNMAP is prohibited to host managed zoned block
devices. This discrepancy should be resolved - probably as another topic.
- The introduction of 'as per the LBPRZ field' to zbc is probably a good
idea. This would require lifting the prohibition against host managed zoned
block devices implementing the logical block provisioning VPD page. At this
late stage of the game, however, we should probably survey implementations
before introducing a new requirement. Again, probably a topic for a separate
thread.
Curtis Ballard
Hewlett Packard
From: owner-t10 at t10.org<mailto:owner-t10 at t10.org> [mailto:owner-t10 at t10.org]
On Behalf Of Joe Breher
Sent: Thursday, May 28, 2015 8:50 AM
To: T10 org; T13 at T13.org<mailto:T13 at T13.org>
Subject: ZAC & ZBC - reads to unwritten logical blocks / sectors
In yesterday's ZAC webex, the group collectively identified several holes in
the specification of behavior which include:
a) reads issued with Forced Unit Access;
b) reads issued to unmapped sectors; or
c) what is returned for PI,
for 'unwritten' sectors (i.e. not written since the last reset write pointer
operation to that zone) in:
a) sequential write preferred zones; or
b) sequential write required zones for which the URSWRZ bit (i.e. UR bit) is
set.
The participants on the call issued themselves action items to find out what
their organizations would prefer for these cases.
This email is to report HGST's collective wisdom on the matter. After some
internal discussion, we believe the most logical architectural choices are:
a) return 'initialization pattern' (as specified elsewhere - e.g. zbc-r03
4.3.3.1) for FUA reads;
b) return 'initialization pattern' for unmapped sector reads; and
c) return all F's for PI for sector reads,
for 'unwritten' sectors (i.e. not written since the last reset write pointer
operation to that zone) in:
a) sequential write preferred zones; or
b) sequential write required zones for which the URSWRZ bit (i.e. UR bit) is
set.
Thanks -
Joe Breher
Storage Architecture Technologist
Standards Setting Organization
San Jose Research Center
HGST, a Western Digital company
(478) 2-Breher
(478) 227-3437
This e-mail may contain confidential or legally privileged information of
HGST. If you are not the intended recipient, please notify us immediately by
responding to this e-mail and then deleting it from your system.



More information about the T10 mailing list