[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/18] Make image fleecing more usable
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v4 00/18] Make image fleecing more usable |
Date: |
Wed, 16 Feb 2022 20:45:59 +0100 |
v4: Switch to new fleecing scheme, more native for Qemu's block-layer,
see new patches 10-12 for details.
01,02: add Hanna's r-b
03: add const, add forgotten bdrv_release_dirty_bitmap()
04: rewrite bitmap parameter parsing
05: add Hanna's r-b
06: tiny wording fixes
07: new
08: fix comments, improve interface of new functions
09: fix grammar, add Hanna's and Nikita's r-bs
10-12: new fleecing scheme
tests: updated to use new fleecing scheme
===
These series brings several improvements to fleecing scheme:
1. support bitmap in copy-before-write filter
2. introduce snapshot-access API and filter, to make a new fleecing
scheme. See "block: copy-before-write: realize snapshot-access API"
commit message for details.
3. support "push backup with fleecing" scheme, when backup job is a
client of common fleecing scheme. That helps when writes to final
backup target are slow and we don't want guest writes hang waiting
for copy-before-write operations to final target.
Vladimir Sementsov-Ogievskiy (18):
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/reqlist: reqlist_find_conflict(): use ranges_overlap()
block/dirty-bitmap: introduce bdrv_dirty_bitmap_status()
block/reqlist: add reqlist_wait_all()
block/io: introduce block driver snapshot-access API
block: introduce snapshot-access filter
block: copy-before-write: realize snapshot-access API
iotests/image-fleecing: add test-case for fleecing format node
iotests.py: add qemu_io_pipe_and_status()
iotests/image-fleecing: add test case with bitmap
block: blk_root(): return non-const pointer
qapi: backup: add immutable-source parameter
iotests/image-fleecing: test push backup with fleecing
qapi/block-core.json | 25 +-
include/block/block-copy.h | 2 +
include/block/block_int.h | 28 +++
include/block/dirty-bitmap.h | 4 +-
include/block/reqlist.h | 75 ++++++
include/qemu/hbitmap.h | 12 +
include/sysemu/block-backend.h | 2 +-
block/backup.c | 61 ++++-
block/block-backend.c | 2 +-
block/block-copy.c | 150 +++++------
block/copy-before-write.c | 265 +++++++++++++++++++-
block/dirty-bitmap.c | 15 +-
block/io.c | 69 +++++
block/monitor/bitmap-qmp-cmds.c | 5 +-
block/replication.c | 2 +-
block/reqlist.c | 85 +++++++
block/snapshot-access.c | 132 ++++++++++
blockdev.c | 1 +
util/hbitmap.c | 33 +++
MAINTAINERS | 5 +-
block/meson.build | 2 +
tests/qemu-iotests/iotests.py | 4 +
tests/qemu-iotests/tests/image-fleecing | 175 ++++++++++---
tests/qemu-iotests/tests/image-fleecing.out | 223 +++++++++++++++-
24 files changed, 1227 insertions(+), 150 deletions(-)
create mode 100644 include/block/reqlist.h
create mode 100644 block/reqlist.c
create mode 100644 block/snapshot-access.c
--
2.31.1
- [PATCH v4 00/18] Make image fleecing more usable,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v4 01/18] block/block-copy: move copy_bitmap initialization to block_copy_state_new(), Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 02/18] block/dirty-bitmap: bdrv_merge_dirty_bitmap(): add return value, Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 03/18] block/block-copy: block_copy_state_new(): add bitmap parameter, Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 05/18] block/block-copy: add block_copy_reset(), Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 06/18] block: intoduce reqlist, Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 07/18] block/reqlist: reqlist_find_conflict(): use ranges_overlap(), Vladimir Sementsov-Ogievskiy, 2022/02/16
- [PATCH v4 04/18] block/copy-before-write: add bitmap open parameter, Vladimir Sementsov-Ogievskiy, 2022/02/16