[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] write_zeroes/trim on the whole disk



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




Reply to: