From: Hu Tao <hutao@cn.fujitsu.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <famz@redhat.com>,
"Richard W.M. Jones" <rjones@redhat.com>,
Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Yasunori Goto <y-goto@jp.fujitsu.com>
Subject: [Qemu-devel] [PATCH v14 0/5] qcow2, raw: add preallocation=full and preallocation=falloc
Date: Tue, 9 Sep 2014 11:54:26 +0800 [thread overview]
Message-ID: <cover.1410232831.git.hutao@cn.fujitsu.com> (raw)
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
next reply other threads:[~2014-09-09 3:57 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-09 3:54 Hu Tao [this message]
2014-09-09 3:54 ` [Qemu-devel] [PATCH v14 1/5] block: round up file size to nearest sector Hu Tao
2014-09-09 12:12 ` Benoît Canet
2014-09-10 1:50 ` Hu Tao
2014-09-10 2:36 ` Hu Tao
2014-09-09 3:54 ` [Qemu-devel] [PATCH v14 2/5] block: don't convert file size to sector size Hu Tao
2014-09-09 12:26 ` Benoît Canet
2014-09-09 3:54 ` [Qemu-devel] [PATCH v14 3/5] qapi: introduce PreallocMode and new PreallocModes full and falloc Hu Tao
2014-09-09 12:42 ` Eric Blake
2014-09-10 1:44 ` Hu Tao
2014-09-09 12:45 ` Benoît Canet
2014-09-10 1:41 ` Hu Tao
2014-09-09 3:54 ` [Qemu-devel] [PATCH v14 4/5] raw-posix: Add falloc and full preallocation option Hu Tao
2014-09-09 13:21 ` Benoît Canet
2014-09-10 2:02 ` Hu Tao
2014-09-09 3:54 ` [Qemu-devel] [PATCH v14 5/5] qcow2: " Hu Tao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1410232831.git.hutao@cn.fujitsu.com \
--to=hutao@cn.fujitsu.com \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=stefanha@redhat.com \
--cc=y-goto@jp.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).