On Mon, Mar 02, 2015 at 06:19:46PM -0500, John Snow wrote: > New topic, new version, same great incremental backup taste. > > This series relies on [Qemu-devel] [PULL 30/69] blkdebug: fix "once" rule, > part of Stefan's 69 patch pull request submitted 2015-02-27. > > This patchset enables the in-memory part of the incremental backup > feature, without transactional support. > > Support for transactions will come at a later date, but getting this > portion upstream will help stabilize work on bitmap persistence and > bitmap migration. > > Transactional support is being postponed to allow more development > to create a transactional callback system that will allow objects used > by the drive backup routines to perform cleanup actions conditionally > based on the outcome of all backups in the transaction group. > > This series was once said to have been written by a man known only > to Qemu-Devel as "Fam Zheng", A programming maverick hellbent on never > again wasting space by making full backups when he did not have to. The > true origins of this series are now lost to the sands of time. > > (12+ revisions later: Thanks, Fam!) > > === > v2: > === > > 01: Added a new opening blurb. > Adjusted codeblock indentations to be 4 spaces instead of 3, > so it works as MD or GFMD. > Adjusted errors explanation. > Make visual separations between json data and shell commands > Eliminate any ligering single quotes > > 07: Remember that memset takes bytes, not n_items ... > > === > v1: > === > > Deletions: > - Removed Transactions, to be added later. > - Removed Transaction tests, as above. > > Changes: > 01: Indentation fixes. > Removed enable/disable documentation. > Added a note that transactions aren't implemented yet. > Removed my needless commas > Added error case documentation. > > 07: QMP enable/disable commands are deleted. > > 14: Some comments concerning assertions. > Scrub re-alloc memory if we expand the array. > Do not attempt to scrub memory if fix_count is 0 > > Changes made with Reviews kept: > > 02: Since 2.4 > 04: Since 2.4 > Demingled the QMP command documentation. > 08: Additions to what was qmp_block_dirty_enable/disable > are no longer present as those function no longer exist. > 09: Since 2.4 > 10: Since 2.4 > Demingled QMP command documentation. > 11: Since 2.4 > 15: Test 112 --> 124 > 17: Number of tests altered. (Only 4, now.) > > Fam Zheng (1): > qapi: Add optional field "name" to block dirty bitmap > > John Snow (16): > docs: incremental backup documentation > qmp: Ensure consistent granularity type > qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove > block: Introduce bdrv_dirty_bitmap_granularity() > hbitmap: add hbitmap_merge > block: Add bitmap disabled status > block: Add bitmap successors > qmp: Add support of "dirty-bitmap" sync mode for drive-backup > qmp: add block-dirty-bitmap-clear > qmp: Add dirty bitmap status fields in query-block > block: add BdrvDirtyBitmap documentation > block: Ensure consistent bitmap function prototypes > block: Resize bitmaps on bdrv_truncate > iotests: add invalid input incremental backup tests > iotests: add simple incremental backup case > iotests: add incremental backup failure recovery test > > block.c | 248 +++++++++++++++++++++++++++++++-- > block/backup.c | 149 ++++++++++++++++---- > block/mirror.c | 46 +++---- > blockdev.c | 162 +++++++++++++++++++++- > docs/bitmaps.md | 311 > ++++++++++++++++++++++++++++++++++++++++++ > hmp.c | 3 +- > include/block/block.h | 34 ++++- > include/block/block_int.h | 4 +- > include/qemu/hbitmap.h | 21 +++ > migration/block.c | 9 +- > qapi/block-core.json | 92 ++++++++++++- > qmp-commands.hx | 92 ++++++++++++- > tests/qemu-iotests/124 | 266 ++++++++++++++++++++++++++++++++++++ > tests/qemu-iotests/124.out | 5 + > tests/qemu-iotests/group | 1 + > tests/qemu-iotests/iotests.py | 6 +- > util/hbitmap.c | 87 ++++++++++++ > 17 files changed, 1446 insertions(+), 90 deletions(-) > create mode 100644 docs/bitmaps.md > create mode 100644 tests/qemu-iotests/124 > create mode 100644 tests/qemu-iotests/124.out
Looks pretty close. Stefan
pgpH3aQAx8Zs_.pgp
Description: PGP signature