Il 18/07/2013 16:09, Peter Lieven ha scritto:
> On 18.07.2013 15:52, Paolo Bonzini wrote:
>> Il 18/07/2013 15:29, Peter Lieven ha scritto:
>>>>> If the driver would have a better method of writing zeroes than
>>>>> discard it simply should not set bdi->write_zeroes_w_discard = 1.
>>>> If the driver had a better method of writing zeroes than discard, it
>>>> simply should ignore the BDRV_MAY_UNMAP (or BDRV_MAY_DISCARD) flag in
>>>> its bdrv_write_zeros implementation.
>>> ok, but this would require an individual patch in every driver, wouldn't
>>> it.  i am ok with that.
>> Yes (making the drivers return the flag in the BDI would also require
>> per-driver patches).
> we still might need a hint for qemu-img convert that the driver does
> support
> writing zeroes by unmap because using write_zeroes in the main loop
> might result in unaligned requests that the target is not able to unmap.
> and to avoid writing several blocks twice by first writing all zeroes
> to the target and then writing all data blocks again I would need to
> keep the loop
> at the beginning of qemu-img convert to write zeroes with correct
> alignment and granularity if the driver supports write_zeroes_w_discard.

(Mis)alignment and granularity can be handled later.  We can ignore them
for now.  Later, if we decide the best way to support them is a flag,
we'll add it.  Let's not put the cart before the horse.

BTW, I expect alignment!=0 to be really, really rare.

Paolo

Reply via email to