From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48384) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X5U4G-00036q-JJ for qemu-devel@nongnu.org; Fri, 11 Jul 2014 02:12:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X5U4B-0007Fi-HG for qemu-devel@nongnu.org; Fri, 11 Jul 2014 02:12:24 -0400 Received: from [59.151.112.132] (port=25016 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X5U4A-0007CC-Ts for qemu-devel@nongnu.org; Fri, 11 Jul 2014 02:12:19 -0400 From: Hu Tao Date: Fri, 11 Jul 2014 14:09:57 +0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH v12 0/6] qcow2, raw: add preallocation=full and preallocation=falloc List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Yasunori Goto , Stefan Hajnoczi , Max Reitz 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. This series depends on patches 1-3 of Max's series 'qemu-img: Implement commit like QMP'. Specifically, patch 6 'qcow2: Add falloc and full preallocation option' uses minimal_blob_size() introduced by Max's patch 'qcow2: Optimize bdrv_make_empty()'. The series is also at https://github.com/taohu/qemu/commits/preallocation-v12 for you to check out, including depended patches from Max. Eric, I'm afraid now we missed qemu 2.1, so patch 1 is still sent with this series. changes to v11: - fix test case 049 (patch 4) - unsigned nl2e -> uint64_t nl2e (patch 6) - use >> instead of / (patch 6) Hu Tao (6): block: round up file size to nearest sector raw, qcow2: don't convert file size to sector size rename parse_enum_option to qapi_enum_parse and make it public qapi: introduce PreallocMode and a new PreallocMode full. raw-posix: Add falloc and full preallocation option qcow2: Add falloc and full preallocation option block/qcow2.c | 56 +++++++++++++++++++++------- block/raw-posix.c | 92 +++++++++++++++++++++++++++++++++++----------- block/raw-win32.c | 6 +-- blockdev.c | 30 +++------------ include/qapi/util.h | 17 +++++++++ qapi/Makefile.objs | 1 + qapi/block-core.json | 17 +++++++++ qapi/qapi-util.c | 32 ++++++++++++++++ tests/qemu-iotests/049.out | 2 +- tests/qemu-iotests/082.out | 54 +++++++++++++-------------- tests/qemu-iotests/096 | 64 ++++++++++++++++++++++++++++++++ tests/qemu-iotests/096.out | 14 +++++++ tests/qemu-iotests/group | 1 + 13 files changed, 296 insertions(+), 90 deletions(-) create mode 100644 include/qapi/util.h create mode 100644 qapi/qapi-util.c create mode 100755 tests/qemu-iotests/096 create mode 100644 tests/qemu-iotests/096.out -- 1.9.3