I agree that it is disappointing that so many vendors seem to have trouble
reading the spec. This case is pretty clear.
The best the T10 committee could do is add a bit to indicate that the device
uses the length from MAXIMUM UNMAP LBA COUNT field for the length of unmaps via
the WRITE SAME w/UNMAP=1 rather than the MAXIMUM WRITE SAME LENGTH field. BUT,
I'll be very clear that the setting of any such new bit will be bit=0 is
backward compatible for COMPLIANT devices, and bit=1 will be the new setting
for "backwards" devices - which means they would STILL require a firmware
change to tell you they are backwards, and you'd STILL need a blacklist for
their older revisions. And this would just makes the hosts job all that much
harder!
Once a device is broken (violates the spec), there is not very much we can do
in the spec to fix it (they have to fix their broken device).
Fred
-----Original Message-----
From: Ewan D. Milne [mailto:[email protected]]
Sent: Wednesday, September 27, 2017 12:28 PM
To: Martin K. Petersen <[email protected]>
Cc: [email protected]; Knight, Frederick <[email protected]>
Subject: Re: [PATCH] sd: Limit WRITE SAME / WRITE SAME(16) w/UNMAP length for
certain devices
On Mon, 2017-09-25 at 21:46 -0400, Martin K. Petersen wrote:
> Ewan,
>
> > Some devices do not support a WRITE SAME / WRITE SAME(16) with the
> > UNMAP bit set up to the length specified in the MAXIMUM WRITE SAME
> > LENGTH field in the block limits VPD page (or, the field is zero,
> > indicating there is no limit). Limit the length by the MAXIMUM UNMAP
> > LBA COUNT value. Otherwise the command might be rejected.
>
> From SBC4:
>
> "A MAXIMUM UNMAP LBA COUNT field set to a non-zero value indicates the
> maximum number of LBAs that may be unmapped by an UNMAP command"
>
> Note that it explicitly states "UNMAP command" and not "unmap
> operation".
>
> "A MAXIMUM WRITE SAME LENGTH field set to a non-zero value indicates
> the maximum number of contiguous logical blocks that the device server
> allows to be unmapped or written in a single WRITE SAME command."
>
> It says "unmapped or written" and "WRITE SAME command".
>
> The spec is crystal clear. The device needs to be fixed. We can
> blacklist older firmware revs.
>
Yes, I know that is what SBC-4 says, and I agree that the devices
are not conforming. Unfortunately, I've come across 3 different
arrays now from 3 different manufacturers that exhibit this behavior.
cc: Fred Knight for his opinion on this (NetApp was not one of the
arrays that I've run into, though).
-Ewan