From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
Kevin Wolf <kwolf@redhat.com>, John Snow <jsnow@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Jeff Cody <jcody@redhat.com>
Subject: [Qemu-devel] [PATCH v5 00/14] block/mirror: Add active-sync mirroring
Date: Wed, 13 Jun 2018 20:18:09 +0200 [thread overview]
Message-ID: <20180613181823.13618-1-mreitz@redhat.com> (raw)
This series implements an active and synchronous mirroring mode.
You can read the cover letter of v4 here (I don’t like to copy-paste
that because people who reviewed previous versions know it already and
this saves them from having to look out for potential changes):
http://lists.nongnu.org/archive/html/qemu-block/2018-04/msg00185.html
v5:
- Patch 3: Rebase conflict with Kevin’s job series (kept R-bs because
it’s just a change in removed code (and a trivial one on top))
- Patch 6: Removed completely unused BdrvChildList typedef [Berto]
(kept R-bs again because this isn’t even a functional change...)
- Patch 11: Added, because jobs are no longer supposed to have direct
access to their progress info, but we need some way of just adding
an offset to the progress end value in the next patch
- Patch 12:
- s/2.12/3.0/ [Eric]
- Use job_progress_*() functions
(kept R-b because I think those to be very obvious changes)
- Patch 13: s/2.13/3.0/ (kept R-b because come on)
- Patch 14:
- s/2017/2018/ (hey, why not)
- qmp_to_opts() has been moved to VM
(kept R-bs because I consider those to be trivial or obvious changes,
respectively)
git-backport-diff to v4:
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/14:[----] [--] 'block/mirror: Pull out mirror_perform()'
002/14:[----] [--] 'block/mirror: Convert to coroutines'
003/14:[0002] [FC] 'block/mirror: Use CoQueue to wait on in-flight ops'
004/14:[----] [-C] 'block/mirror: Wait for in-flight op conflicts'
005/14:[----] [-C] 'block/mirror: Use source as a BdrvChild'
006/14:[0002] [FC] 'block: Generalize should_update_child() rule'
007/14:[----] [--] 'hbitmap: Add @advance param to hbitmap_iter_next()'
008/14:[----] [--] 'test-hbitmap: Add non-advancing iter_next tests'
009/14:[----] [--] 'block/dirty-bitmap: Add bdrv_dirty_iter_next_area'
010/14:[----] [-C] 'block/mirror: Add MirrorBDSOpaque'
011/14:[down] 'job: Add job_progress_increase_remaining()'
012/14:[0006] [FC] 'block/mirror: Add active mirroring'
013/14:[0004] [FC] 'block/mirror: Add copy mode QAPI interface'
014/14:[0006] [FC] 'iotests: Add test for active mirroring'
Max Reitz (14):
block/mirror: Pull out mirror_perform()
block/mirror: Convert to coroutines
block/mirror: Use CoQueue to wait on in-flight ops
block/mirror: Wait for in-flight op conflicts
block/mirror: Use source as a BdrvChild
block: Generalize should_update_child() rule
hbitmap: Add @advance param to hbitmap_iter_next()
test-hbitmap: Add non-advancing iter_next tests
block/dirty-bitmap: Add bdrv_dirty_iter_next_area
block/mirror: Add MirrorBDSOpaque
job: Add job_progress_increase_remaining()
block/mirror: Add active mirroring
block/mirror: Add copy mode QAPI interface
iotests: Add test for active mirroring
qapi/block-core.json | 29 +-
include/block/block_int.h | 4 +-
include/block/dirty-bitmap.h | 2 +
include/qemu/hbitmap.h | 5 +-
include/qemu/job.h | 15 +
block.c | 44 ++-
block/backup.c | 2 +-
block/dirty-bitmap.c | 57 +++-
block/mirror.c | 605 ++++++++++++++++++++++++++++-------
blockdev.c | 9 +-
job.c | 5 +
tests/test-hbitmap.c | 38 ++-
util/hbitmap.c | 10 +-
tests/qemu-iotests/151 | 120 +++++++
tests/qemu-iotests/151.out | 5 +
tests/qemu-iotests/group | 1 +
16 files changed, 799 insertions(+), 152 deletions(-)
create mode 100755 tests/qemu-iotests/151
create mode 100644 tests/qemu-iotests/151.out
--
2.17.1
next reply other threads:[~2018-06-13 18:18 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-13 18:18 Max Reitz [this message]
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 01/14] block/mirror: Pull out mirror_perform() Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 02/14] block/mirror: Convert to coroutines Max Reitz
2018-06-14 15:22 ` Kevin Wolf
2018-06-18 14:03 ` Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 03/14] block/mirror: Use CoQueue to wait on in-flight ops Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 04/14] block/mirror: Wait for in-flight op conflicts Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 05/14] block/mirror: Use source as a BdrvChild Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 06/14] block: Generalize should_update_child() rule Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 07/14] hbitmap: Add @advance param to hbitmap_iter_next() Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 08/14] test-hbitmap: Add non-advancing iter_next tests Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 09/14] block/dirty-bitmap: Add bdrv_dirty_iter_next_area Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 10/14] block/mirror: Add MirrorBDSOpaque Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 11/14] job: Add job_progress_increase_remaining() Max Reitz
2018-06-14 15:50 ` Kevin Wolf
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 12/14] block/mirror: Add active mirroring Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 13/14] block/mirror: Add copy mode QAPI interface Max Reitz
2018-06-13 18:18 ` [Qemu-devel] [PATCH v5 14/14] iotests: Add test for active mirroring Max Reitz
2018-06-18 15:11 ` [Qemu-devel] [PATCH v5 00/14] block/mirror: Add active-sync mirroring Max Reitz
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=20180613181823.13618-1-mreitz@redhat.com \
--to=mreitz@redhat.com \
--cc=jcody@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.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).