From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSoi4-0000Z4-L9 for qemu-devel@nongnu.org; Tue, 03 Mar 2015 10:26:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YSohv-0003oR-Ie for qemu-devel@nongnu.org; Tue, 03 Mar 2015 10:26:12 -0500 Message-ID: <54F5D288.1080407@redhat.com> Date: Tue, 03 Mar 2015 10:26:00 -0500 From: Max Reitz MIME-Version: 1.0 References: <1425338403-16138-1-git-send-email-jsnow@redhat.com> In-Reply-To: <1425338403-16138-1-git-send-email-jsnow@redhat.com> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 00/17] block: transactionless incremental backup series List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-block@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, vsementsov@parallels.com, stefanha@redhat.com On 2015-03-02 at 18:19, 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, That was easy... Max > 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 >