On 08/28/2017 01:56 AM, Liu Qing wrote:
> Dear list,
>     Recently I used fio to test qcow2 driver in the guest os, and found out
> that when a new cluster is allocated the 4K IO will occupy 64K(default cluster
> size) bandwith.
>     From the code qcow2 driver will fill the unused part of new allocated
> cluster with 0 in perform_cow. These 0s are set in qcow2_co_readv when the 
> read
> destination is not allocated and it has no backing file. Could I forbidden any
> further write in copy_sectors if the copy source is not allocated and it has
> no backing file? So only the requested data is written to the cluster. 
> Function
> copy_sectors is only used by perform_cow in the master branch.
>     Do you think this change is reasonable? Thanks.
> 
> 

CCing qemu-block.

If I am understanding you correctly, you're noticing an adverse
performance impact from initial writes to unallocated clusters through
the qcow2 driver, when qcow2 performs zero-fill of uninitiated clusters.

First, can you look at sources for current master branch? it hasn't been
named "copy_sectors" since June 2016, and the function looks a bit
differently than it did in the version you're looking at, I think.

John

Reply via email to