[Libguestfs] [Qemu-devel] Effect of qemu-img convert -m and -W options

Stefan Hajnoczi stefanha at gmail.com
Thu Nov 16 17:20:30 UTC 2017


On Thu, Nov 16, 2017 at 3:12 PM, Richard W.M. Jones <rjones at redhat.com> wrote:
> On Thu, Nov 16, 2017 at 03:51:29PM +0100, Peter Lieven wrote:
>> Afaik all writes to the same QCOW2 serialize because of the s->lock that
>> is held during the write. So its not suprising that there is no benefit from
>> mutliple threads as long as reading from the RAW file involves no delay.
>> Which is likely due to readahead of the OS.
>
> I guess this would explain it, thanks.

The theory is false for preallocated qcow2 image files.  Parallel
writes do occur in block/qcow2.c:qcow2_co_pwritev() if the cluster is
already allocated:

            qemu_co_mutex_unlock(&s->lock);  <----- parallel!
            BLKDBG_EVENT(bs->file, BLKDBG_WRITE_AIO);
            trace_qcow2_writev_data(qemu_coroutine_self(),
                                    cluster_offset + offset_in_cluster);
            ret = bdrv_co_pwritev(bs->file,
                                  cluster_offset + offset_in_cluster,
                                  cur_bytes, &hd_qiov, 0);
            qemu_co_mutex_lock(&s->lock);

Stefan




More information about the Libguestfs mailing list