<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:ArialMT;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText"><span style="color:#1F497D">&gt; </span>A <span style="font-variant:small-caps">
wsnz</span> bit value of one with a <span style="font-variant:small-caps">number of logical blocks</span> field value of zero does promise failure,<o:p></o:p></p>
<p class="MsoPlainText">&gt; but there seems to be no definitive result with a <span style="font-variant:small-caps">
wsnz</span> bit value of zero. <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">That is correct and was deliberate -the WSNZ bit is specified as a &#8220;disable&#8221; bit to explicitly allow implementations to claim support for WRITE SAME commands without having to support the zero behavior of writing
 to the end of the medium.&nbsp;&nbsp; There was no interest in an &#8220;enable&#8221; bit or field value at the time.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">As for the original question:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="color:#1F497D">&gt; </span>When the spec says &quot;number of logical blocks specified to be [...] written&quot; is this only in reference to the NUMBER OF LOGICAL BLOCKS<o:p></o:p></p>
<p class="MsoPlainText">&gt; passed in rather than the computed number of blocks to be written or is there a choice over which is used (i.e. the target can pick<o:p></o:p></p>
<p class="MsoPlainText">&gt; whether it errors or not if the computed blocks exceed the MAXIMUM WRITE SAME LENGTH)?<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Neither - my reading of the current SBC-4 text is that the limit always applies to the number of blocks written by the command, but a careful reading of the text is involved to reach that conclusion.&nbsp; Excerpts
 that follow are from 5.47 WRITE SAME (10) in SBC-4 rev 10: <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT">If the
</span><span style="font-size:8.0pt;font-family:ArialMT">WSNZ </span><span style="font-size:10.0pt;font-family:ArialMT">bit is set to zero, then a
</span><span style="font-size:8.0pt;font-family:ArialMT">NUMBER OF LOGICAL BLOCKS
</span><span style="font-size:10.0pt;font-family:ArialMT">field set to zero specifies that the number of<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT">contiguous logical blocks that are requested to be unmapped or written includes all of the logical blocks<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt;font-family:ArialMT">starting with the LBA specified in the
</span><span style="font-size:8.0pt;font-family:ArialMT">LOGICAL BLOCK ADDRESS </span>
<span style="font-size:10.0pt;font-family:ArialMT">field to the last logical block on the medium.</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Note the use of &#8220;specifies&#8221; in the first line.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT;color:black">If the number of logical blocks specified to be unmapped or written exceeds the value indicated in the<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:8.0pt;font-family:ArialMT;color:black">MAXIMUM WRITE SAME LENGTH
</span><span style="font-size:10.0pt;font-family:ArialMT;color:black">field</span><span style="font-size:10.0pt;font-family:ArialMT;color:red">
</span><span style="font-size:10.0pt;font-family:ArialMT;color:black">(see 6.6.4), then the device server shall<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT;color:black">terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt;font-family:ArialMT;color:black">the additional sense code set to INVALID FIELD IN CDB.</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Note the use of &#8220;specified&#8221; in the first line.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">So, a NUMBER OF LOGICAL BLOCKS field set to zero specifies that all of the logical blocks up to the end of the medium are to be unmapped or written, and if that (computed) number of logical blocks exceeds the
 MAXIMUM WRITE SAME LENGTH value, the required result is CHECK CONDITION, ILLEGAL REQUEST, INVALID FIELD IN CDB.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoPlainText"><span style="color:#1F497D">&gt; </span>For example, if I have an *SBC-3* 1GByte target with a WSNZ of 0 and a MAXIMUM WRITE SAME LENGTH of 131072 blocks<o:p></o:p></p>
<p class="MsoPlainText">&gt; (64Mbytes with a sector size of 512), then I issue a WRITE SAME with NUMBER OF LOGICAL BLOCKS of 0 and a<o:p></o:p></p>
<p class="MsoPlainText">&gt; LOGICAL BLOCK ADDRESS of 0 is it legal for the SBC-3 target to produce an error because the computed number of<o:p></o:p></p>
<p class="MsoPlainText">&gt; blocks to be written will be greater than 131072?<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">That is not only &#8220;legal&#8221;, it is also the behavior required by the standard.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I believe the standard is unambiguous as written, but I&#8217;d support an editorial clarification to reduce the degree of careful reading required to reach that conclusion.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks, --David<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> t10-bounces@t10.org [mailto:t10-bounces@t10.org]
<b>On Behalf Of </b>John Geldman (jgeldman)<br>
<b>Sent:</b> Wednesday, May 18, 2016 3:05 AM<br>
<b>To:</b> Sitsofe Wheeler; t10@t10.org<br>
<b>Subject:</b> Re: [T10] WRITE SAME and 0 LBA counts<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">All,<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">What I see in SBC4r10 is a bit more problematic:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT">A write same non-zero (</span><span style="font-size:8.0pt;font-family:ArialMT">WSNZ</span><span style="font-size:10.0pt;font-family:ArialMT">)
 bit set to one indicates that the device server does not support a value of zero in the
</span><span style="font-size:8.0pt;font-family:ArialMT">NUMBER OF LOGICAL BLOCKS
</span><span style="font-size:10.0pt;font-family:ArialMT">field in the WRITE SAME command CDBs.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-autospace:none"><span style="font-size:10.0pt;font-family:ArialMT">A
</span><span style="font-size:8.0pt;font-family:ArialMT">WSNZ </span><span style="font-size:10.0pt;font-family:ArialMT">bit set to zero indicates that the device server may or may not support a value of zero in the
</span><span style="font-size:8.0pt;font-family:ArialMT">NUMBER OF LOGICAL BLOCKS
</span><span style="font-size:10.0pt;font-family:ArialMT">field of the WRITE SAME commands.</span><o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">A <span style="font-variant:small-caps">wsnz</span> bit value of one with a
<span style="font-variant:small-caps">number of logical blocks</span> field value of zero does promise failure, but there seems to be no definitive result with a
<span style="font-variant:small-caps">wsnz</span> bit value of zero. <o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">One solution approach would be to clarify the standard to:
<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in">a)<span style="font-size:7.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>allow both reported rejection and attempted processing if the host specifies &nbsp;a
<span style="font-variant:small-caps">number of logical blocks</span> field value of zero when the
<span style="font-variant:small-caps">wsnz</span> bit value is zero; and <o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in">b)<span style="font-size:7.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>allow both reported rejection and attempted processing if the host specifies &nbsp;a
<span style="font-variant:small-caps">number of logical blocks</span> field value of zero when the
<span style="font-variant:small-caps">wsnz</span> bit value is zero and the actual affected block count would exceed the value of the
<span style="font-variant:small-caps">maximum write same length</span> field.<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">Thank you,<o:p></o:p></p>
<p class="MsoPlainText">John Geldman<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><a href="http://www.micron.com/"><span style="color:#1F497D;text-decoration:none"><img border="0" width="168" height="45" id="Picture_x0020_1" src="cid:image001.png@01D1B147.959BB8E0" alt="cid:image001.png@01D123AF.225CEFA0"></span></a><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray;text-transform:uppercase">John Geldman</span></b><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray"><br>
Director, Industry Standards, <br>
<br>
Micron Technology, Inc.<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray">Office</span></b><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray">&nbsp;&#43;1 (408) 822-0348 &nbsp;<b>Mobile</b>&nbsp;&#43;1 (510) 449-3597<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray"><br>
</span><span style="color:#1F497D"><a href="mailto:jgeldman@micron.com" title="Email"><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray">jgeldman@micron.com</span></a></span><span style="font-size:9.0pt;font-family:&quot;Segoe UI&quot;,&quot;sans-serif&quot;;color:gray">&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: <a href="mailto:t10-bounces@t10.org">t10-bounces@t10.org</a> [<a href="mailto:t10-bounces@t10.org">mailto:t10-bounces@t10.org</a>] On Behalf Of Sitsofe Wheeler<br>
Sent: Tuesday, May 17, 2016 10:37 PM<br>
To: <a href="mailto:t10@t10.org">t10@t10.org</a><br>
Subject: [T10] WRITE SAME and 0 LBA counts<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">According to SBC specs if the target's WSNZ bit is 0 and the WRITES SAME's NUMBER OF LOGICAL BLOCKS is set to 0 then the LBA from the LOGICAL BLOCK ADDRESS field to the last logical block on the medium should be written. However, it
 also says if the number of logical blocks specified to be written exceeds the MAXIMUM WRITE SAME LENGTH a CHECK CONDITION/ILLEGAL REQUEST/INVALID FIELD IN CDB should be raised.<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">When the spec says &quot;number of logical blocks specified to be [...] written&quot; is this only in reference to the NUMBER OF LOGICAL BLOCKS passed in rather than the computed number of blocks to be written or is there a choice over which is
 used (i.e. the target can pick whether it errors or not if the computed blocks exceed the MAXIMUM WRITE SAME LENGTH)?<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">For example, if I have an *SBC-3* 1GByte target with a WSNZ of 0 and a MAXIMUM WRITE SAME LENGTH of 131072 blocks (64Mbytes with a sector size of 512), then I issue a WRITE SAME with NUMBER OF LOGICAL BLOCKS of 0 and a LOGICAL BLOCK
 ADDRESS of 0 is it legal for the SBC-3 target to produce an error because the computed number of blocks to be written will be greater than 131072?<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">--<o:p></o:p></p>
<p class="MsoPlainText">Sitsofe | <a href="http://sucs.org/~sits/"><span style="color:windowtext;text-decoration:none">http://sucs.org/~sits/</span></a><o:p></o:p></p>
<p class="MsoPlainText">_______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">T10 mailing list<o:p></o:p></p>
<p class="MsoPlainText"><a href="mailto:T10@t10.org"><span style="color:windowtext;text-decoration:none">T10@t10.org</span></a><o:p></o:p></p>
<p class="MsoPlainText"><a href="http://www.t10.org/mailman/listinfo/t10"><span style="color:windowtext;text-decoration:none">http://www.t10.org/mailman/listinfo/t10</span></a><o:p></o:p></p>
</div>
</div>
</body>
</html>