[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps
From: |
John Snow |
Subject: |
Re: [Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps |
Date: |
Fri, 4 Mar 2016 13:00:50 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 |
On 02/17/2016 10:28 AM, Vladimir Sementsov-Ogievskiy wrote:
> 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
>
In your prerequisite patches,
"iotests-add-default-node-name" breaks qemu iotests 055 and 118. Didn't
look hard enough to find out why, yet.