[PATCH v6 00/25] parallels: Add full dirty bitmap support
"Denis V. Lunev" <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu,gmane.comp.emulators.qemu.block |
|---|---|
| Message-ID | <[email protected]> |
Parallels format driver: * make some preparation * add dirty bitmap saving * make dirty bitmap RW * fix broken checks * refactor leak check * add parallels format support to several tests Alexander left the team, so v6 comes from me. v5 was: https://lore.kernel.org/qemu-devel/[email protected]/ It does not apply to master, it goes on top of "[PATCH 0/8] parallels: fix Format Extension parsing", which applies to commit 3e3ccab106f8 ("Update version for v11.1.0-rc3 release"): https://lore.kernel.org/qemu-devel/[email protected]/ v6: Reworked, so the numbers have shifted. 2: Made it .bdrv_inactivate and armed the in use flag on activation. 3: New patch, inactivating a read-only node. 5: cluster_end is uint64_t. 6: Absorbed the mark_unused helper, fixed the used bitmap growth. 7: New patch, the check no longer dies on what it is meant to report. 9: Absorbed the three parallels_check_leak() patches and the truncation. 10: Dropped the redundant bdrv_pwrite_zeroes() of the reuse branch. 11: Refuse a bitmap which does not fit, report a lost one, added ext_end. 12: Absorbed "Make a loaded dirty bitmap persistent", drop a broken one. 13: Bound the search by the region rather than by the cluster. 14: New patch, the Format Extension against the leak check. 15: Skipped test_reopen_rw, the bitmap name is a UUID. 16: New patch, a bitmap L1 entry has to point inside the data area. 17: Mark the bitmaps inconsistent instead of skipping the load. 18: New patch, block-dirty-bitmap-remove reaches the image. 19: New patch, qemu-img info reports the bitmaps. 20: New patch, renames parallels-read-bitmap to parallels-bitmap. 21: New patch, covers storing a bitmap. 22: New patch, covers the qemu-img bitmap sub-commands. 23: New patch, covers a broken Format Extension and a combined repair. 25: Added a comment about the bitmap name. Dropped "Preserve extensions cluster for non-transient extensions" and "Reverse a conditional in parallels_check_leak()". Signed-off-by: Denis V. Lunev <[email protected]> Cc: Stefan Hajnoczi <[email protected]> Alexander Ivanov (4): parallels: Set s->used_bmap to NULL in parallels_free_used_bitmap() parallels: Make mark_used() a global function parallels: Create used bitmap even if checks needed tests: Turned on 256, 299, 304 and block-status-cache for parallels format Denis V. Lunev (21): parallels: split inactivation out and add the activation counterpart iotests: cover inactivating a read-only node parallels: Limit search in parallels_mark_used to the last marked cluster parallels: Move host clusters allocation to a separate function parallels: do not let the check die on what it is meant to report parallels: Drop unused clusters at the end of the image parallels: Remove unnecessary data_end field parallels: Add dirty bitmaps saving parallels: Let image extensions work in RW mode parallels: Handle L1 entries equal to one iotests: cover the Format Extension against the leak check iotests: run the persistent dirty bitmap test on parallels parallels: reject a bitmap L1 entry outside the data area parallels: do not trust the bitmaps of an image which was not closed parallels: implement removing a stored dirty bitmap parallels: report the stored dirty bitmaps in qemu-img info iotests: rename parallels-read-bitmap to parallels-bitmap iotests: cover storing a parallels dirty bitmap iotests: cover the qemu-img bitmap operations on parallels iotests: cover a broken Format Extension and a combined repair tests: Add parallels format support to image-fleecing block/parallels-ext.c | 433 +++++++++++++++- block/parallels.c | 455 +++++++++++------ block/parallels.h | 23 +- qapi/block-core.json | 40 +- tests/qemu-iotests/165 | 18 +- tests/qemu-iotests/256 | 2 +- tests/qemu-iotests/299 | 2 +- tests/qemu-iotests/304 | 2 +- tests/qemu-iotests/tests/block-status-cache | 2 +- tests/qemu-iotests/tests/image-fleecing | 14 +- tests/qemu-iotests/tests/inactive-node-nbd | 14 + .../qemu-iotests/tests/inactive-node-nbd.out | 8 + tests/qemu-iotests/tests/parallels-bitmap | 471 ++++++++++++++++++ tests/qemu-iotests/tests/parallels-bitmap.out | 106 ++++ tests/qemu-iotests/tests/parallels-checks | 236 +++++++++ tests/qemu-iotests/tests/parallels-checks.out | 185 +++++++ .../qemu-iotests/tests/parallels-read-bitmap | 231 --------- .../tests/parallels-read-bitmap.out | 39 -- 18 files changed, 1827 insertions(+), 454 deletions(-) create mode 100755 tests/qemu-iotests/tests/parallels-bitmap create mode 100644 tests/qemu-iotests/tests/parallels-bitmap.out delete mode 100755 tests/qemu-iotests/tests/parallels-read-bitmap delete mode 100644 tests/qemu-iotests/tests/parallels-read-bitmap.out -- 2.53.0