qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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