Query regarding response of UNMAP command

Black, David david.black at emc.com
Thu Feb 19 06:55:36 PST 2015


* From the T10 Reflector (t10 at t10.org), posted by:
* "Black, David" <david.black at emc.com>
*
In general, truncated UNMAP block descriptors are ignored.
> For example, host wants to transfer single block descriptor with UNMAP
> command. In this cases following values shall be driven:
> PARAMETER LIST LENGTH= 'h18 (24),
> UNMAP DATA LENGTH= 'h16 (22),
> UNMAP BLOCK DESCRIPTOR DATA LENGTH= 'h10 (16).
> 
> Here, if host transmits other than 'h16 value for UNMAP DATA LENGTH
> field or other than 'h10 for UNMAP BLOCK DESCRIPTOR DATA LENGTH field,
> then which of the following behavior of device is correct:
There's no single answer.
If those values are smaller than stated above, and are consistent,
the UNMAP block descriptor is incomplete and is ignored; nothing happens
and GOOD status is returned.
If those values are larger than stated above, and are consistent, then the
PARAMETER LIST LENGTH in the CDB truncated the parameter data; the one
complete UNMAP block descriptor that was received is processed and the
truncation is not an error.
If those two values are inconsistent, the shortest one governs whether
a complete UNMAP block descriptor was received, and it's ok to proceed
as above.  It's probably a better idea to note the inconsistency (especially
if UNMAP DATA LENGTH is too small by comparison to UNMAP BLOCK DESCRIPTOR
LENGTH) and treat that as an error -
CHECK CONDITION, ILLEGAL REQUEST, INVALID VALUE IN PARAMETER LIST.
Thanks,
--David
> -----Original Message-----
> From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Munjal
Mistry
> Sent: Thursday, February 19, 2015 6:18 AM
> To: T10 Reflector
> Subject: Query regarding response of UNMAP command
> 
> * From the T10 Reflector (t10 at t10.org), posted by:
> * Munjal Mistry <munjal_mistry at mentor.com>
> *
> Hi,
> 
> I have a query regarding the response for UNMAP command when there is
> mismatch of "PARAMETER LIST LENGTH" (field of UNMAP command) with "UNMAP
> DATA LENGTH" or "UNMAP BLOCK DESCRIPTOR DATA LENGTH" (fields of unmap
> parameter list).  Here, Storage device is thin provisioning.
> 
> For example, host wants to transfer single block descriptor with UNMAP
> command. In this cases following values shall be driven:
> PARAMETER LIST LENGTH= 'h18 (24),
> UNMAP DATA LENGTH= 'h16 (22),
> UNMAP BLOCK DESCRIPTOR DATA LENGTH= 'h10 (16).
> 
> Here, if host transmits other than 'h16 value for UNMAP DATA LENGTH
> field or other than 'h10 for UNMAP BLOCK DESCRIPTOR DATA LENGTH field,
> then which of the following behavior of device is correct:
> 
> (1) Device ignores it's value and unmap the logical blocks described
> with UNMAP block descriptor and sends GOOD response.
> (2) Device ignores it's value and unmap the logical blocks described
> with UNMAP block descriptor and sends failure response.
> (3) Device terminates the command and sends failure response.
> 
> If device sends the failure response, as per the 2nd and 3rd behavior
> then what would be the possible status, ASC and ASCQ for failure?
> 
> 
> --
> Warm Regards,
> Munjal Mistry
> 
> *
> * For T10 Reflector information, send a message with
> * 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org



More information about the T10 mailing list