On Thu, Dec 19, 2013 at 10:27:35AM +0800, Hu Tao wrote:
> This series implements full image preallocation to create a non-sparse image
> file at creation time, both for raw and qcow2 format. The purpose is to avoid
> performance deterioration of the guest cause by sparse image.

I'm not sure the new bdrv_preallocate() interface is necessary.  Can
qcow2_create() simply pass a preallocate=full option to
bdrv_create_file()?

It's simpler if we avoid bdrv_preallocate(), just keep it a
.bdrv_create() option.  That way we also avoid the question of how
exactly preallocate functions on an image file that already has blocks
allocated.

So what I imagine is:
1. Add preallocation=full support to raw-posix.c
2. Add preallocation=full support to qcow2.c, calculate image file size
including metadata for bdrv_create_file().

CCing Eric Blake so libvirt can consider how full preallocation
interacts with their safezero() preallocation.  If QEMU handles
preallocation can we skip safezero()?  Is there a concern about full
preallocation in QEMU taking a long time without progress report?

Stefan

Reply via email to