[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v7 00/22] qcow2: persistent dirty bitmaps
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-block] [PATCH v7 00/22] qcow2: persistent dirty bitmaps |
Date: |
Fri, 30 Sep 2016 13:53:06 +0300 |
v7:
https://src.openvz.org/users/vsementsov/repos/qemu/browse?at=refs%2Ftags%2Fqcow2-bitmap-v7
based on block-next (https://github.com/XanClic/qemu/commits/block-next)
- a lot of refactoring and reordering of patches.
- dead code removed (bdrv_dirty_bitmap_load, etc.)
- do not maintain extra data for now
- do not store dirty bitmap directory in memory
(as we use it seldom, we can just reread if needed)
By Kevin's review:
01 - commit message changed: fix->improvement (as it was not a bug)
03 - r-b
04 - r-b
05 - add 21 patch to fix spec, also, removed all (I hope) mentions of
"Bitmap Header", switch to one unified name for it - "Bitmap
Directory Entry", to avoid misunderstanding with Qcow2 header.
(also, add patch 22, to fix it in spec)
v6.06 - improve for_each_dir_entry loop, reorder patches, other small fixes
v6.07 ~> v7.09 - dead code removed, I've moved to one function
.bdrv_store_persistent_bitmaps and have wrapper and callback in one
patch (with also some other staff. If it not ok, I can split them)
v6.08 - about keeping bitmap directory instead of bitmap list: no I don't keep
it at all.
v6.16 - old bdrv_ bitmap-storing related functions are removed. The new one is
bdrv_store_persistent_bitmaps.
v6:
https://src.openvz.org/users/vsementsov/repos/qemu/browse?at=refs%2Ftags%2Fqcow2-bitmap-v6
based on block-next (https://github.com/XanClic/qemu/commits/block-next)
There are a lot of changes, reorderings and additions in comparement with v5.
One principal thing: now bitmaps are removed from image after loading instead
of marking them in_use. It is simpler and we do not need to store superfluous
data.
Also, we are no more interested in command line interface to dirty bitmaps.
So it is dropped. If someone needs it I can add it later.
Vladimir Sementsov-Ogievskiy (22):
hbitmap: improve dirty iter
tests: add hbitmap iter test
block: fix bdrv_dirty_bitmap_granularity signature
block/dirty-bitmap: add deserialize_ones func
qcow2-bitmap: structs and consts
qcow2: add dirty bitmaps extension
qcow2-bitmap: introduce auto-loading bitmaps
block/dirty-bitmap: add autoload field to BdrvDirtyBitmap
block: introduce persistent dirty bitmaps
block/dirty-bitmap: add bdrv_dirty_bitmap_next()
qcow2-bitmap: add qcow2_store_persistent_bitmaps()
qcow2-bitmap: add IN_USE flag
qcow2-bitmap: check constraints
qcow2: delete bitmaps on truncate
qcow2-bitmap: add autoclear bit
qmp: add persistent flag to block-dirty-bitmap-add
qmp: add autoload parameter to block-dirty-bitmap-add
qapi: add md5 checksum of last dirty bitmap level to query-block
iotests: test qcow2 persistent dirty bitmap
qcow2-dirty-bitmap: refcounts
specs/qcow2: fix bitmap granularity qemu-specific note
specs/qcow2: do not use wording 'bitmap header'
block.c | 30 ++
block/Makefile.objs | 2 +-
block/dirty-bitmap.c | 59 ++-
block/qcow2-bitmap.c | 963 +++++++++++++++++++++++++++++++++++++++++++
block/qcow2-refcount.c | 14 +-
block/qcow2.c | 105 ++++-
block/qcow2.h | 54 +++
blockdev.c | 30 +-
docs/specs/qcow2.txt | 8 +-
include/block/block.h | 2 +
include/block/block_int.h | 2 +
include/block/dirty-bitmap.h | 16 +-
include/qemu/hbitmap.h | 47 ++-
qapi/block-core.json | 17 +-
qmp-commands.hx | 8 +-
tests/qemu-iotests/165 | 87 ++++
tests/qemu-iotests/165.out | 5 +
tests/qemu-iotests/group | 1 +
tests/test-hbitmap.c | 19 +
util/hbitmap.c | 48 ++-
20 files changed, 1475 insertions(+), 42 deletions(-)
create mode 100644 block/qcow2-bitmap.c
create mode 100755 tests/qemu-iotests/165
create mode 100644 tests/qemu-iotests/165.out
--
1.8.3.1
- [Qemu-block] [PATCH v7 00/22] qcow2: persistent dirty bitmaps,
Vladimir Sementsov-Ogievskiy <=
- [Qemu-block] [PATCH 21/22] specs/qcow2: fix bitmap granularity qemu-specific note, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 03/22] block: fix bdrv_dirty_bitmap_granularity signature, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 19/22] iotests: test qcow2 persistent dirty bitmap, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 10/22] block/dirty-bitmap: add bdrv_dirty_bitmap_next(), Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 01/22] hbitmap: improve dirty iter, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 16/22] qmp: add persistent flag to block-dirty-bitmap-add, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 12/22] qcow2-bitmap: add IN_USE flag, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 14/22] qcow2: delete bitmaps on truncate, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 15/22] qcow2-bitmap: add autoclear bit, Vladimir Sementsov-Ogievskiy, 2016/09/30
- [Qemu-block] [PATCH 13/22] qcow2-bitmap: check constraints, Vladimir Sementsov-Ogievskiy, 2016/09/30