On 24.09.2016 16:42, Vladimir Sementsov-Ogievskiy wrote:
On 24.09.2016 15:06, Vladimir Sementsov-Ogievskiy wrote:
On 24.09.2016 00:21, Wouter Verhelst wrote:
On Fri, Sep 23, 2016 at 02:00:06PM -0500, Eric Blake wrote:
My preference would be a new flag to the existing commands, with
explicit documentation that 0 offset and 0 length must be used with
that
flag, when requesting a full-device wipe.
Alternatively, what about a flag that says "if you use this flag, the
size should be left-shifted by X bits before processing"? That allows
you to do TRIM or WRITE_ZEROES on much larger chunks, without being
limited to "whole disk" commands. We should probably make it an illegal
flag for any command that actually sends data over the wire, though.
Note: if disk size is not aligned to X we will have to send request
larger than the disk size to clear the whole disk.
which is not beautiful.. And splitting the request into two:
(disk_size / X * X) and (disk_size % X) is not beautiful too. May be
flag, that says 'whole disk request' is more appropriate? Nothing
prevents adding then flag about X-shift.
Also, accordingly to documentation, NBD_CMD_TRIM is not appropriate for
disk clearing:
* `NBD_CMD_TRIM` (4)
A hint to the server that the data defined by len and offset is no
longer needed. A server MAY discard len bytes starting at offset, but
is not required to.
After issuing this command, a client MUST NOT make any assumptions
about the contents of the export affected by this command, until
overwriting it again with `NBD_CMD_WRITE`.
- it may do nothing.. So, what to do with this? add flag FORCE_TRIM for
this command? Or add FORCE_HOLES flag to WRITE_ZEROES?
--
Best regards,
Vladimir