On Fri, Dec 20, 2013 at 11:30:21AM +0100, Stefan Hajnoczi wrote:
> 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()?

Looks simpler.  I'll try this. 

> 
> 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