From: John Snow <jsnow@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, famz@redhat.com, John Snow <jsnow@redhat.com>,
qemu-devel@nongnu.org, armbru@redhat.com,
vsementsov@parallels.com, stefanha@redhat.com, mreitz@redhat.com
Subject: [Qemu-devel] [PATCH RESEND 00/17] block: transactionless incremental backup series
Date: Fri, 27 Feb 2015 19:47:40 -0500 [thread overview]
Message-ID: <1425084477-31602-1-git-send-email-jsnow@redhat.com> (raw)
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.
(11+ revisions later: Thanks, Fam!)
[----] : 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/17:[0210] [FC] 'docs: incremental backup documentation'
002/17:[0002] [FC] 'qapi: Add optional field "name" to block dirty bitmap'
003/17:[----] [--] 'qmp: Ensure consistent granularity type'
004/17:[0027] [FC] 'qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove'
005/17:[----] [--] 'block: Introduce bdrv_dirty_bitmap_granularity()'
006/17:[----] [--] 'hbitmap: add hbitmap_merge'
007/17:[down] 'block: Add bitmap disabled status'
008/17:[0017] [FC] 'block: Add bitmap successors'
009/17:[0004] [FC] 'qmp: Add support of "dirty-bitmap" sync mode for drive-backup'
010/17:[0011] [FC] 'qmp: add block-dirty-bitmap-clear'
011/17:[0004] [FC] 'qmp: Add dirty bitmap status fields in query-block'
012/17:[----] [--] 'block: add BdrvDirtyBitmap documentation'
013/17:[----] [--] 'block: Ensure consistent bitmap function prototypes'
014/17:[0019] [FC] 'block: Resize bitmaps on bdrv_truncate'
015/17:[0002] [FC] 'iotests: add invalid input incremental backup tests'
016/17:[----] [--] 'iotests: add simple incremental backup case'
017/17:[0008] [FC] 'iotests: add incremental backup failure recovery test'
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 | 303 ++++++++++++++++++++++++++++++++++++++++++
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 | 86 ++++++++++++
17 files changed, 1437 insertions(+), 90 deletions(-)
create mode 100644 docs/bitmaps.md
create mode 100644 tests/qemu-iotests/124
create mode 100644 tests/qemu-iotests/124.out
--
1.9.3
next reply other threads:[~2015-02-28 0:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-28 0:47 John Snow [this message]
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 01/17] docs: incremental backup documentation John Snow
2015-03-02 17:49 ` Max Reitz
2015-03-02 18:48 ` John Snow
2015-03-02 19:07 ` Max Reitz
2015-03-02 21:27 ` Max Reitz
2015-03-04 10:39 ` Kevin Wolf
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 02/17] qapi: Add optional field "name" to block dirty bitmap John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 03/17] qmp: Ensure consistent granularity type John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 04/17] qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 05/17] block: Introduce bdrv_dirty_bitmap_granularity() John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 06/17] hbitmap: add hbitmap_merge John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 07/17] block: Add bitmap disabled status John Snow
2015-03-02 17:08 ` Max Reitz
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 08/17] block: Add bitmap successors John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 09/17] qmp: Add support of "dirty-bitmap" sync mode for drive-backup John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 10/17] qmp: add block-dirty-bitmap-clear John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 11/17] qmp: Add dirty bitmap status fields in query-block John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 12/17] block: add BdrvDirtyBitmap documentation John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 13/17] block: Ensure consistent bitmap function prototypes John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 14/17] block: Resize bitmaps on bdrv_truncate John Snow
2015-03-02 17:17 ` Max Reitz
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 15/17] iotests: add invalid input incremental backup tests John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 16/17] iotests: add simple incremental backup case John Snow
2015-02-28 0:47 ` [Qemu-devel] [PATCH RESEND 17/17] iotests: add incremental backup failure recovery test John Snow
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=1425084477-31602-1-git-send-email-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=armbru@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).