[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RFC DRAFT 00/11] Make image fleecing more usable
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH RFC DRAFT 00/11] Make image fleecing more usable |
Date: |
Wed, 4 Aug 2021 16:17:39 +0300 |
Hi all!
That's an untested draft. I'll be on vocation 05-22, so no reason for
this just lay in my hard drive. Any comments are welcome (mostly about
general design), but don't waste time on careful reviewing.
What this series brings to image-fleecing:
1. support for bitmap (patch 04). So, we can do incremental external
backups and not do extra copy-before-write operations for non-dirty
regions.
2. fleecing block driver - see lat patch for details and list of
benefits.
Based-on: <20210804093813.20688-1-vsementsov@virtuozzo.com>
([PATCH v7 00/33] block: publish backup-top filter)
Vladimir Sementsov-Ogievskiy (11):
block/block-copy: move copy_bitmap initialization to
block_copy_state_new()
block/dirty-bitmap: bdrv_merge_dirty_bitmap(): add return value
block/block-copy: block_copy_state_new(): add bitmap parameter
block/copy-before-write: add bitmap open parameter
block/block-copy: add block_copy_reset()
block: intoduce reqlist
block/dirty-bitmap: introduce bdrv_dirty_bitmap_status()
block/reqlist: add reqlist_wait_all()
block/copy-before-write: add cbw_snapshot_read_{lock,unlock}()
block/copy-before-write: add cbw_snapshot_discard()
block: introduce fleecing block driver
qapi/block-core.json | 10 +-
block/copy-before-write.h | 6 ++
include/block/block-copy.h | 3 +-
include/block/dirty-bitmap.h | 4 +-
include/block/reqlist.h | 47 ++++++++
include/qemu/hbitmap.h | 11 ++
block/block-copy.c | 152 +++++++++++---------------
block/copy-before-write.c | 143 ++++++++++++++++++++++++-
block/dirty-bitmap.c | 14 ++-
block/fleecing.c | 183 ++++++++++++++++++++++++++++++++
block/monitor/bitmap-qmp-cmds.c | 5 +-
block/reqlist.c | 100 +++++++++++++++++
util/hbitmap.c | 36 +++++++
block/meson.build | 2 +
14 files changed, 613 insertions(+), 103 deletions(-)
create mode 100644 include/block/reqlist.h
create mode 100644 block/fleecing.c
create mode 100644 block/reqlist.c
--
2.29.2
- [PATCH RFC DRAFT 00/11] Make image fleecing more usable,
Vladimir Sementsov-Ogievskiy <=
- [PATCH 01/11] block/block-copy: move copy_bitmap initialization to block_copy_state_new(), Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 02/11] block/dirty-bitmap: bdrv_merge_dirty_bitmap(): add return value, Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 04/11] block/copy-before-write: add bitmap open parameter, Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 03/11] block/block-copy: block_copy_state_new(): add bitmap parameter, Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 06/11] block: intoduce reqlist, Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 05/11] block/block-copy: add block_copy_reset(), Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 08/11] block/reqlist: add reqlist_wait_all(), Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 07/11] block/dirty-bitmap: introduce bdrv_dirty_bitmap_status(), Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 09/11] block/copy-before-write: add cbw_snapshot_read_{lock, unlock}(), Vladimir Sementsov-Ogievskiy, 2021/08/04
- [PATCH 10/11] block/copy-before-write: add cbw_snapshot_discard(), Vladimir Sementsov-Ogievskiy, 2021/08/04