|
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(-)
[Prev in Thread] | Current Thread | [Next in Thread] |