All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, famz@redhat.com, qemu-devel@nongnu.org,
	mreitz@redhat.com, vsementsov@parallels.com, stefanha@redhat.com
Subject: [Qemu-devel] [PATCH v2.5 00/10] block: incremental backup transactions
Date: Fri, 17 Apr 2015 21:01:10 -0400	[thread overview]
Message-ID: <5531ACD6.9030208@redhat.com> (raw)
In-Reply-To: <1427484005-31120-1-git-send-email-jsnow@redhat.com>

I am not prepared to send a v3 on this, primarily because I am still 
waffling on whether or not to do the code motion patch that is present 
in patch #8 of v2 of this series.

However, for the purposes of testing, reviewers may find it convenient 
to have a new version of this series that applies cleanly in concert 
with v6 of the transactionless series, so I am presenting an informal 
"version 2.5" of this series.

Patches are available on github: 
https://github.com/jnsnow/qemu/commits/incremental-transactions

And here is the v2.5 patchset diff:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, 
respectively

001/10:[0002] [FC] 'qapi: Add transaction support to block-dirty-bitmap 
operations'
002/10:[0021] [FC] 'iotests: add transactional incremental backup test'
003/10:[----] [--] 'block: rename BlkTransactionState and BdrvActionOps'
004/10:[----] [--] 'block: re-add BlkTransactionState'
005/10:[0010] [FC] 'block: add transactional callbacks feature'
006/10:[----] [--] 'block: add refcount to Job object'
007/10:[----] [-C] 'block: add delayed bitmap successor cleanup'
008/10:[0051] [FC] 'qmp: Add an implementation wrapper for qmp_drive_backup'
009/10:[0001] [FC] 'block: drive_backup transaction callback support'
010/10:[0033] [FC] 'iotests: 124 - transactional failure test'

01: Removed "Not yet implemented" line from bitmaps.md
02: Rebase fallout
05: Removed superfluous deletion loop pointed out by Max
08: Fallout from removing the code motion patch,
     new forward declaration.
09: Fallout from removing the code motion patch,
     new forward declaration.
10: Fallout from the rebase.


There are some more changes that need to happen to #10, primarily a bit 
more refactoring after the changes made to how images are checked.

On 03/27/2015 03:19 PM, John Snow wrote:
> requires: 1426879023-18151-1-git-send-email-jsnow@redhat.com
>            "[PATCH v4 00/20] block: transactionless incremental backup series"
>
> This series adds support for incremental backup primitives in QMP
> transactions. It requires my transactionless incremental backup series,
> currently at v4.
>
> Patch 1 adds basic support for add and clear transactions.
> Patch 2 tests this basic support.
> Patches 3-4 refactor transactions a little bit, to add clarity.
> Patch 5 adds the framework for error scenarios where only
>      some jobs that were launched by a transaction complete successfully,
>      and we need to perform context-sensitive cleanup after the transaction
>      itself has already completed.
> Patches 6-7 add necessary bookkeeping information to backup job
>      data structures to take advantage of this new feature.
> Patch 8 just moves code.
> Patch 9 modifies qmp_drive_backup to support the new feature.
> Patch 10 implements the new feature for drive_backup transaction actions.
> Patch 11 tests the new feature.
>
> Lingering questions:
>   - Is it worth it to add a post-transaction completion event to QMP that
>     signifies all jobs launched by the transaction have completed? This
>     would be of primary interest to libvirt, in particular, but only as
>     a convenience feature.
>
> Thank you,
> --John Snow
>
> v2:
>
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
>
> 001/11:[0009] [FC] 'qapi: Add transaction support to block-dirty-bitmap operations'
> 002/11:[0036] [FC] 'iotests: add transactional incremental backup test'
> 003/11:[down] 'blockdev: rename BlkTransactionState and BdrvActionOps'
> 004/11:[down] 'block: re-add BlkTransactionState'
> 005/11:[0274] [FC] 'block: add transactional callbacks feature'
> 006/11:[0004] [FC] 'block: add refcount to Job object'
> 007/11:[0048] [FC] 'block: add delayed bitmap successor cleanup'
> 008/11:[down] 'block: move transactions beneath qmp interfaces'
> 009/11:[0084] [FC] 'qmp: Add an implementation wrapper for qmp_drive_backup'
> 010/11:[0050] [FC] 'block: drive_backup transaction callback support'
> 011/11:[0004] [FC] 'iotests: 124 - transactional failure test'
>
>   01: Fixed indentation.
>       Fixed QMP commands to behave with new bitmap_lookup from
>         transactionless-v4.
>       2.3 --> 2.4.
>   02: Folded in improvements to qemu-iotest 124 from transactional-v1.
>   03: NEW
>   04: NEW
>   05: A lot:
>       Don't delete the comma in the transaction actions config
>       use g_new0 instead of g_malloc0
>       Phrasing: "retcode" --> "Return code"
>       Use GCC attributes to mark functions as unused until future patches.
>       Added some data structure documentation.
>       Many structure and function renames, hopefully to improve readability.
>       Use just one list for all Actions instead of two separate lists.
>       Remove ActionState from the list upon deletion/decref
>       And many other small tweaks.
>   06: Comment phrasing.
>   07: Removed errp parameter from all functions introduced by this commit.
>       bdrv_dirty_bitmap_decref --> bdrv_frozen_bitmap_decref
>   08: NEW
>   09: _drive_backup --> do_drive_backup()
>       Forward declarations removed.
>   10: Rebased on top of drastically modified #05.
>       Phrasing: "BackupBlockJob" instead of "BackupJob" in comments.
>   11: Removed extra parameters to wait_incremental() in
>         test_transaction_failure()
>
> John Snow (11):
>    qapi: Add transaction support to block-dirty-bitmap operations
>    iotests: add transactional incremental backup test
>    block: rename BlkTransactionState and BdrvActionOps
>    block: re-add BlkTransactionState
>    block: add transactional callbacks feature
>    block: add refcount to Job object
>    block: add delayed bitmap successor cleanup
>    block: move transactions beneath qmp interfaces
>    qmp: Add an implementation wrapper for qmp_drive_backup
>    block: drive_backup transaction callback support
>    iotests: 124 - transactional failure test
>
>   block.c                    |   65 +-
>   block/backup.c             |   29 +-
>   blockdev.c                 | 1599 ++++++++++++++++++++++++++++----------------
>   blockjob.c                 |   18 +-
>   include/block/block.h      |   10 +-
>   include/block/block_int.h  |    8 +
>   include/block/blockjob.h   |   21 +
>   qapi-schema.json           |    6 +-
>   tests/qemu-iotests/124     |  170 +++++
>   tests/qemu-iotests/124.out |    4 +-
>   10 files changed, 1313 insertions(+), 617 deletions(-)
>

  parent reply	other threads:[~2015-04-18  1:01 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-27 19:19 [Qemu-devel] [PATCH v2 00/11] block: incremental backup transactions John Snow
2015-03-27 19:19 ` [Qemu-devel] [PATCH v2 01/11] qapi: Add transaction support to block-dirty-bitmap operations John Snow
2015-04-17 14:41   ` Max Reitz
2015-04-17 14:50   ` Eric Blake
2015-03-27 19:19 ` [Qemu-devel] [PATCH v2 02/11] iotests: add transactional incremental backup test John Snow
2015-04-17 14:42   ` Max Reitz
2015-03-27 19:19 ` [Qemu-devel] [PATCH v2 03/11] block: rename BlkTransactionState and BdrvActionOps John Snow
2015-04-17 14:51   ` Max Reitz
2015-03-27 19:19 ` [Qemu-devel] [PATCH v2 04/11] block: re-add BlkTransactionState John Snow
2015-04-17 15:11   ` Max Reitz
2015-03-27 19:19 ` [Qemu-devel] [PATCH v2 05/11] block: add transactional callbacks feature John Snow
2015-04-17 15:41   ` Max Reitz
2015-04-17 21:55     ` John Snow
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 06/11] block: add refcount to Job object John Snow
2015-04-17 15:43   ` Max Reitz
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 07/11] block: add delayed bitmap successor cleanup John Snow
2015-04-17 15:49   ` Max Reitz
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 08/11] block: move transactions beneath qmp interfaces John Snow
2015-04-17 16:01   ` Max Reitz
2015-04-17 16:40     ` John Snow
2015-04-17 16:43     ` Eric Blake
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 09/11] qmp: Add an implementation wrapper for qmp_drive_backup John Snow
2015-04-17 16:12   ` Max Reitz
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 10/11] block: drive_backup transaction callback support John Snow
2015-04-17 16:55   ` Max Reitz
2015-03-27 19:20 ` [Qemu-devel] [PATCH v2 11/11] iotests: 124 - transactional failure test John Snow
2015-04-17 17:04   ` Max Reitz
2015-04-18  1:01 ` John Snow [this message]
2015-04-21 13:53   ` [Qemu-devel] [PATCH v2.5 00/10] block: incremental backup transactions Kashyap Chamarthy
2015-04-21 14:48     ` Kashyap Chamarthy
2015-04-21 20:33     ` Kashyap Chamarthy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5531ACD6.9030208@redhat.com \
    --to=jsnow@redhat.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@parallels.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.