Il 17/07/2013 10:46, Kevin Wolf ha scritto:
> Am 15.07.2013 um 12:49 hat Peter Lieven geschrieben:
>> if a destination has has_zero_init = 0, but it supports
>> discard zeroes use discard to convert the target
>> into an all zero device.
>>
>> Signed-off-by: Peter Lieven <p...@kamp.de>
> 
> Wouldn't it be better to use bdrv_write_zeroes() and extend the
> implementation of that to use discard internally in those block drivers
> where it makes sense?
> 
> Because here you're not really discarding (i.e. don't care about the
> sectors any more), but you want them to be zeroed.

I thought the same yesterday when reviewing the series, but I'm not
convinced.

Discarding is not always the right way to write zeroes, because it can
disrupt performance.  It may be fine when you are already going to write
a sparse image (as is the case for qemu-img convert), but not in
general.  So if you just used write_zeroes, it would have to fall under
yet another -drive option (or an extension to "-drive discard").  I
think what Peter did is a good compromise in the end.

BTW, Peter and Ronnie: we were assuming that UNMAP with LBPRZ=1 always
zeroes blocks, but is that true for unaligned operations?

Paolo

Reply via email to