[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps |
Date: |
Wed, 17 Feb 2016 18:28:52 +0300 |
This series add persistent dirty bitmaps feature to qcow2.
Specification is in docs/spec/qcow2.txt (not merged yet, see
[PATCH v10] spec: add qcow2 bitmaps extension specification)
This series are based on Fam's
[PATCH v2 00/13] Dirty bitmap changes for migration/persistence work
(meta bitmaps not used, and only hbitmap_deserialize_finish from
serialization)
This also needs some preparation patches, most of them are in my
bitmap-migration series. I've not listed them here to keep things
simpler, this is RFC any way.
v4:
Previous version was posted more than five months ago, so I will not
carefully list all changes.
What should be noted:
- some changes are made to sutisfy last version of specification
- removed staff, related to possibility of saving bitmaps for one
disk in the other qcow2.
- to make bitmap store/load zero-copy, I've moved load/store code to
HBitmap - this is new patch 01.
so, bdrv_dirty_bitmap_serialize_part and friends are not needed,
only hbitmap_deserialize_finish, to repair bitmap consistency after
loading its last level.
- two patches added about AUTO and EXTRA_DATA_COMPATIBLE flags
- some fixes made after John's comments on v3
Vladimir Sementsov-Ogievskiy (17):
hbitmap: load/store
qcow2: Bitmaps extension: structs and consts
qcow2-dirty-bitmap: read dirty bitmap directory
qcow2-dirty-bitmap: add qcow2_bitmap_load()
qcow2-dirty-bitmap: add qcow2_bitmap_store()
qcow2: add dirty bitmaps extension
qcow2-dirty-bitmap: add qcow2_bitmap_load_check()
block: store persistent dirty bitmaps
block: add bdrv_load_dirty_bitmap()
qcow2-dirty-bitmap: add autoclear bit
qemu: command line option for dirty bitmaps
qcow2-dirty-bitmap: add IN_USE flag
qcow2-dirty-bitmaps: disallow stroing bitmap to other bs
iotests: add VM.test_launcn()
iotests: test internal persistent dirty bitmap
qcow2-dirty-bitmap: add AUTO flag
qcow2-dirty-bitmap: add EXTRA_DATA_COMPATIBLE flag
block.c | 3 +
block/Makefile.objs | 2 +-
block/dirty-bitmap.c | 101 +++++
block/qcow2-dirty-bitmap.c | 839 ++++++++++++++++++++++++++++++++++++++++++
block/qcow2.c | 105 +++++-
block/qcow2.h | 59 +++
blockdev.c | 36 ++
include/block/block_int.h | 9 +
include/block/dirty-bitmap.h | 21 ++
include/qemu/hbitmap.h | 12 +
include/sysemu/blockdev.h | 1 +
include/sysemu/sysemu.h | 1 +
qemu-options.hx | 35 ++
tests/qemu-iotests/160 | 112 ++++++
tests/qemu-iotests/160.out | 21 ++
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 25 ++
util/hbitmap.c | 182 +++++++++
vl.c | 78 ++++
19 files changed, 1640 insertions(+), 3 deletions(-)
create mode 100644 block/qcow2-dirty-bitmap.c
create mode 100755 tests/qemu-iotests/160
create mode 100644 tests/qemu-iotests/160.out
--
1.8.3.1
- [Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps,
Vladimir Sementsov-Ogievskiy <=
- [Qemu-devel] [PATCH 02/17] qcow2: Bitmaps extension: structs and consts, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 01/17] hbitmap: load/store, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 04/17] qcow2-dirty-bitmap: add qcow2_bitmap_load(), Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 06/17] qcow2: add dirty bitmaps extension, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 07/17] qcow2-dirty-bitmap: add qcow2_bitmap_load_check(), Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 03/17] qcow2-dirty-bitmap: read dirty bitmap directory, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 05/17] qcow2-dirty-bitmap: add qcow2_bitmap_store(), Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 08/17] block: store persistent dirty bitmaps, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 10/17] qcow2-dirty-bitmap: add autoclear bit, Vladimir Sementsov-Ogievskiy, 2016/02/17
- [Qemu-devel] [PATCH 09/17] block: add bdrv_load_dirty_bitmap(), Vladimir Sementsov-Ogievskiy, 2016/02/17