All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@parallels.com>,
	qemu-devel@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, quintela@redhat.com,
	dgilbert@redhat.com, stefanha@redhat.com, pbonzini@redhat.com,
	amit.shah@redhat.com, den@openvz.org
Subject: Re: [Qemu-devel] [PATCH v5 00/12] Dirty bitmaps migration
Date: Fri, 12 Jun 2015 18:16:10 -0400	[thread overview]
Message-ID: <557B5A2A.5060301@redhat.com> (raw)
In-Reply-To: <1431531007-10269-1-git-send-email-vsementsov@parallels.com>

Ping for maintainer reviews -- I've given it a first pass and it should
hopefully be close.

Thanks,
--js

On 05/13/2015 11:29 AM, Vladimir Sementsov-Ogievskiy wrote:
> These patches provide dirty bitmap migration feature. Only named dirty
> bitmaps are to be migrated. Migration may be enabled using migration
> capabilities.
> 
> v5:
>     - rebase on master
>     - drop [PATCH RFC v4 10/13] iotests: add event_wait to VM class
>     - remove rfc, as incremental backup series by John Snow are in
>       upstream
>     
> 
> v4 significant changes:
>  0001: tiny bugfix: out[i] -> out[i-start], same for 'in'
>  0007: set chunk size to 1kb, disable live iteration for
>        migrating data < 1mb size.
> 
>  tests: only one with md5 sum is here. used function event_wait
>         by John Snow. (I hope, you don't mind me just adding this
>         function with your 'Signed-off-by')
> 
>  rfc: This patch set is based on v13 of
>       "block: incremental backup series" by John Snow, which are
>       not pushed yet.
> 
> v3:
>  based on v13 of "block: incremental backup series" by John Snow.
> 
>  changes from v2:
>  removed patch for adding dirty parameter (migration capablities used
>  instead).
>  
>  0001: printf's dropped, qapi used
>  0002: part0 -> zeroes
>  0003: part0 -> zeroes
>  0005: dirty_dirty -> meta
>        add comments about meta bitmap
>        
>  0006: the format is changed, nodes used instead of devices.
> 
>  other patches are new.
> 
>  rfc: there are two tests. They are the same but using different
>  interfaces: md5 checksum of the bitmap last layer in query-block or
>  separate query-block-dirty-bitmap with dirty bitmap regions.
>  The second form is more appropriate for debugging, the first is more
>  appropriate for simple regression control. Which should go to
>  upstream?
> 
> v2:
>  1. bug-fixes, that are already in upstream, and renaming of function
>  bdrv_reset_dirty_bitmap (which is already in Snow's series) are
>  dropped
>  2. bitmap store/restore: the concept renamed to serialization, added
>  function hbitmap_deserialize_part0, to not transfer zero blocks
>  3. migration dirty parameter: added description comment
>  4. Other patches are new.
> 
> v2.rfc:
> Actually, in this version of the series I'm trying not use
> migration/block.c at all. Instead a separate migration unit is added
> in the new file migration/dirty-bitmap.c. Now bitmaps are migrated
> like blocks in block migration, they have their "dirty-dirty" bitmaps,
> for tracking set/unset changes during migration.
> 
> The advantages are:
>   - no complications of migration/block.c
>   - separate dirty-dirty bitmaps provide handling of "unset's"
>   - more effective meta-data/data ratio - no tiny bitmap-blocks.
> 
> 
> 
> v1:
> These patches provide dirty bitmap migration feature. Only named dirty
> bitmaps are to be migrated. Migration is made as a part of block
> migration in block-migration.c.
> 
> Dirty bitmap migration may be enabled by "dirty" parameter for qmp migrate
> command. If "blk" and "inc" parameters are false when "dirty" is true
> block migration is actually skipped: no allocatoions, no bdrv_read's,
> no bdrv_write's, only bitmaps are migrated.
> 
> The patch set includes two my previous bug fixes, which are necessary
> for it. The patch set is based on Incremental backup series by John
> Snow.
> Vladimir Sementsov-Ogievskiy (12):
>   hbitmap: serialization
>   block: BdrvDirtyBitmap serialization interface
>   block: tiny refactoring: minimize hbitmap_(set/reset) usage
>   block: add meta bitmaps
>   block: add bdrv_next_dirty_bitmap()
>   qapi: add dirty-bitmaps migration capability
>   migration: add migration/block-dirty-bitmap.c
>   iotests: maintain several vms in test
>   iotests: add add_incoming_migration to VM class
>   qapi: add md5 checksum of last dirty bitmap level to query-block
>   iotests: add dirty bitmap migration test
>   migration/qemu-file: make functions qemu_(get/put)_string public
> 
>  block.c                        |  98 +++++-
>  include/block/block.h          |  22 ++
>  include/migration/block.h      |   1 +
>  include/migration/migration.h  |   1 +
>  include/migration/qemu-file.h  |  17 +
>  include/qemu/hbitmap.h         |  67 ++++
>  migration/Makefile.objs        |   2 +-
>  migration/block-dirty-bitmap.c | 693 +++++++++++++++++++++++++++++++++++++++++
>  migration/migration.c          |   9 +
>  migration/qemu-file.c          |  18 ++
>  qapi-schema.json               |   4 +-
>  qapi/block-core.json           |   4 +-
>  tests/qemu-iotests/117         |  84 +++++
>  tests/qemu-iotests/117.out     |   5 +
>  tests/qemu-iotests/group       |   1 +
>  tests/qemu-iotests/iotests.py  |  14 +-
>  util/hbitmap.c                 | 106 +++++++
>  vl.c                           |   1 +
>  18 files changed, 1137 insertions(+), 10 deletions(-)
>  create mode 100644 migration/block-dirty-bitmap.c
>  create mode 100755 tests/qemu-iotests/117
>  create mode 100644 tests/qemu-iotests/117.out
> 

  parent reply	other threads:[~2015-06-12 22:16 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-13 15:29 [Qemu-devel] [PATCH v5 00/12] Dirty bitmaps migration Vladimir Sementsov-Ogievskiy
2015-05-13 15:29 ` [Qemu-devel] [PATCH 01/12] hbitmap: serialization Vladimir Sementsov-Ogievskiy
2015-05-13 15:29 ` [Qemu-devel] [PATCH 02/12] block: BdrvDirtyBitmap serialization interface Vladimir Sementsov-Ogievskiy
2015-05-13 15:29 ` [Qemu-devel] [PATCH 03/12] block: tiny refactoring: minimize hbitmap_(set/reset) usage Vladimir Sementsov-Ogievskiy
2015-05-13 15:29 ` [Qemu-devel] [PATCH 04/12] block: add meta bitmaps Vladimir Sementsov-Ogievskiy
2015-05-28 22:13   ` John Snow
2015-05-13 15:30 ` [Qemu-devel] [PATCH 05/12] block: add bdrv_next_dirty_bitmap() Vladimir Sementsov-Ogievskiy
2015-05-13 15:30 ` [Qemu-devel] [PATCH 06/12] qapi: add dirty-bitmaps migration capability Vladimir Sementsov-Ogievskiy
2015-05-13 15:30 ` [Qemu-devel] [PATCH 07/12] migration: add migration/block-dirty-bitmap.c Vladimir Sementsov-Ogievskiy
2015-06-02 21:56   ` John Snow
2015-05-13 15:30 ` [Qemu-devel] [PATCH 08/12] iotests: maintain several vms in test Vladimir Sementsov-Ogievskiy
2015-05-13 15:30 ` [Qemu-devel] [PATCH 09/12] iotests: add add_incoming_migration to VM class Vladimir Sementsov-Ogievskiy
2015-05-13 15:30 ` [Qemu-devel] [PATCH 10/12] qapi: add md5 checksum of last dirty bitmap level to query-block Vladimir Sementsov-Ogievskiy
2015-05-13 15:30 ` [Qemu-devel] [PATCH 11/12] iotests: add dirty bitmap migration test Vladimir Sementsov-Ogievskiy
2015-06-02 22:07   ` John Snow
2015-05-13 15:30 ` [Qemu-devel] [PATCH 12/12] migration/qemu-file: make functions qemu_(get/put)_string public Vladimir Sementsov-Ogievskiy
2015-05-21 13:51 ` [Qemu-devel] [PATCH v5 00/12] Dirty bitmaps migration Vladimir Sementsov-Ogievskiy
2015-05-21 13:57   ` Denis V. Lunev
2015-05-21 16:44     ` John Snow
2015-05-26 14:48       ` Denis V. Lunev
2015-05-26 14:51         ` Denis V. Lunev
2015-05-28 20:09           ` John Snow
2015-05-28 20:56             ` Denis V. Lunev
2015-06-02 22:17               ` John Snow
2015-06-05 10:51                 ` Denis V. Lunev
2016-01-26  8:45                 ` Vladimir Sementsov-Ogievskiy
2016-01-26 22:57                   ` John Snow
2016-01-27  1:17                     ` Fam Zheng
2015-06-02 22:12 ` John Snow
2015-06-03  9:10   ` Vladimir Sementsov-Ogievskiy
2015-06-12 22:16 ` John Snow [this message]
2015-06-19 16:57   ` Denis V. Lunev
2015-06-19 17:38     ` 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=557B5A2A.5060301@redhat.com \
    --to=jsnow@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=den@openvz.org \
    --cc=dgilbert@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --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.