qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v2 0/6] qemu-img: add preallocation=full


From: Fam Zheng
Subject: Re: [Qemu-devel] [RFC PATCH v2 0/6] qemu-img: add preallocation=full
Date: Wed, 27 Nov 2013 11:22:22 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1

On 2013年11月27日 10:15, 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.

This series implements full preallocation by using 
fallocate()/posix_fallocate(),
which have the advantage that it is fast when creating large image file.
Zero-filling is not implemented, as writing zeros to image could be slow for 
large
file. (fallocate() ensures zero-filling, but posix_fallocate()) If users want 
it,
we can maybe add a option to let users have a choice. Suggestions?


We have zero init in raw-posix:

static BlockDriver bdrv_file = {
    ...
    .bdrv_has_zero_init = bdrv_has_zero_init_1,
}

so I think we have to zero-fill it if posix_fallocate doesn't ensure.

Fam

Base on Kevin's patch at:
http://lists.gnu.org/archive/html/qemu-devel/2011-01/msg03017.html

Hu Tao (6):
   block: introduce prealloc_mode
   block: add BlockDriver.bdrv_preallocate.
   block/raw-posix: implement bdrv_preallocate
   raw-posix: Add full image preallocation option
   qcow2: implement bdrv_preallocate
   qcow2: Add full image preallocation option

  block.c                   | 13 +++++++++++
  block/qcow2.c             | 32 +++++++++++++++++++++------
  block/raw-posix.c         | 56 +++++++++++++++++++++++++++++++++++++++++++++++
  include/block/block.h     |  7 ++++++
  include/block/block_int.h |  3 +++
  5 files changed, 104 insertions(+), 7 deletions(-)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]