[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v14 0/5] qcow2, raw: add preallocation=full and prea
From: |
Hu Tao |
Subject: |
[Qemu-devel] [PATCH v14 0/5] qcow2, raw: add preallocation=full and preallocation=falloc |
Date: |
Tue, 9 Sep 2014 11:54:26 +0800 |
This series adds two preallocation mode to qcow2 and raw:
Option preallocation=full preallocates disk space for image by writing
zeros to disk, this ensures disk space in any cases.
Option preallocation=falloc preallocates disk space by calling
posix_fallocate(). This is faster than preallocation=full.
Note: there is a false positive reported by checkpatch.pl to patch 1.
changes to v13:
- rebase (patch 3 in v13 is already in)
- don't convert file size to sector size in hdev_create(), too (patch 2)
- reintroduce preallocation=falloc. (patch 3)
- split the implementation of preallocation=full in v13 into
preallocation=falloc and preallocation=full (patch 4)
changes to v12:
- remove dependence on minimal_blob_size() (patch 6)
- remove preallocation=falloc. (patch 4)
- preallocation=full tries posix_fallocate() first then writing
zeros (patch 5)
- round up file size for all formats (patch 1)
- avoid converting file size for more formats (patch 2)
changes to v11:
- fix test case 049 (patch 4)
- unsigned nl2e -> uint64_t nl2e (patch 6)
- use >> instead of / (patch 6)
changes to v10:
- PreallocMode is moved from file qapi-schema.json to qapi/block-core.json
- introdues preallocation=falloc, no changes to preallocation=metadata
- using minimal_blob_size() to calculate metadata size for qcow2
- indentation fix in file blockdev.c
changes to v9:
- use ROUND_UP to do round up
- split the round up into its own patch and add test case
- new patch rename parse_enum_option to qapi_enum_parse and make it public
- reuse qapi_enum_parse
changes to v8:
- round up image file size to nearest sector size
- dont' blindly lose error info
- target for 2.1 rather than 2.0
- and, rebase to latest git tree
changes to v5:
- add `Since 2.0' to PreallocMode
- apply total_size change to raw-win32.c as well
changes to v4:
- fix wrong calculation of qcow2 metadata size in v4
- remove raw_preallocate2()
- better error out path in raw_create()
- fix coding style
changes to v3:
- remove bdrv_preallocate and make preallocation a
bdrv_create_file option
- prealloc_mode -> PreallocMode and add it to QAPI
- fix return value in raw_preallocate2
changes to v2:
- Fix comments to v2 by Fam.
- qcow2: first fallocate disk space, then allocate metadata. This avoids
the problem in v2 that bdrv_preallocate may clear all information in
metadata. This does not necessarily map all data clusters sequentially
but does keep information in metadata. Peter, is this acceptable?
Hu Tao (5):
block: round up file size to nearest sector
block: don't convert file size to sector size
qapi: introduce PreallocMode and new PreallocModes full and falloc.
raw-posix: Add falloc and full preallocation option
qcow2: Add falloc and full preallocation option
block/archipelago.c | 3 +-
block/cow.c | 3 +-
block/gluster.c | 9 ++--
block/iscsi.c | 4 +-
block/nfs.c | 3 +-
block/qcow.c | 7 +--
block/qcow2.c | 80 ++++++++++++++++++++++++------
block/qed.c | 3 +-
block/raw-posix.c | 103 ++++++++++++++++++++++++++++++---------
block/raw-win32.c | 6 +--
block/rbd.c | 3 +-
block/sheepdog.c | 3 +-
block/ssh.c | 3 +-
block/vdi.c | 3 +-
block/vhdx.c | 3 +-
block/vmdk.c | 3 +-
block/vpc.c | 3 +-
qapi/block-core.json | 17 +++++++
qemu-doc.texi | 17 +++++--
qemu-img.texi | 17 +++++--
tests/qemu-iotests/049.out | 2 +-
tests/qemu-iotests/082.out | 54 ++++++++++----------
tests/qemu-iotests/104 | 57 ++++++++++++++++++++++
tests/qemu-iotests/104.out | 12 +++++
tests/qemu-iotests/common.filter | 21 ++++++++
tests/qemu-iotests/group | 1 +
26 files changed, 344 insertions(+), 96 deletions(-)
create mode 100755 tests/qemu-iotests/104
create mode 100644 tests/qemu-iotests/104.out
--
1.9.3