All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	peterx@redhat.com
Subject: [Qemu-devel] [PATCH v6 00/10] migration: objectify MigrationState
Date: Tue, 27 Jun 2017 12:10:09 +0800	[thread overview]
Message-ID: <1498536619-14548-1-git-send-email-peterx@redhat.com> (raw)

v6:
- patch 1: fix comment, and add more comment for
  register_compat_props() [Eduardo]
- patch 2: add more comments for register_compat_props_array() and the
  new AccelClass.global_props [Eduardo]
- patch 3: rename user_register_compat_props() into
  user_register_global_props, and some update on comments [Eduardo]
- patch 5: let xen_compat_props be static, and use a better "end of
  list" for it [Eduardo] (since the change is trivial, I didn't remove
  Juan's r-b)

v5:
- add r-b for Juan on patch 4,5,7-10
- patch 2: introduce register_compat_props_array() that may be further
  used by machine codes [Eduardo]
- patch 2: fix english error [Eduardo]

v4:
- dropped lots of patches related to AccelState.global_props. Now I am
  using AccelClass.global_props, and only use it in Xen codes.
- one patch is added to clean up the global property registerations,
  with some comment to show the ordering.
- one patch is added to dump migration globals in "info migrate"
  unconditionally (last patch).
- changed all the following xen_init() patches to use
  AccelClass.global_props.
- (since most of the patches are either touched-up again, or threw
  away, so no much r-b added, only one for Juan on the only_migratable
  patch, anyway, thanks for reviewing the old codes!)

------------

The main goal of this series is to let MigrationState be a QDev.

It helps in many use cases.

First of all, we can remove many legacy tricky functions. To name
some: savevm_skip_section_footers(), savevm_skip_configuration(), etc.
They didn't do much thing but setup a bool value. If MigrationState
can be a QDev, then these things can be setup by the HW_COMPAT_* magic
with some lines like:

{
    .driver   = "migration",
    .property = "send-configuration",
    .value    = "off",
}

Next, if this can be merged and okay, we can move on to convert more
things into properties for migration. A very attractive use case of it
is, we will be able to do this for migration:

  -global migration.postcopy=on

Then we don't need to use either HMP/QMP interface to enable it. It
greatly simplifies the migration test scripts.

Why QDev not QObject? The answer is simple: all the magic that we want
for migration is bound to QDev (HW_COMPAT, "-global"). If one day we
want to move these features from QDev to QObject, that'll be fine and
easy for MigrationState. But before that, let's have MigrationState a
QDev. :-)

Please kindly review. Thanks.

Peter Xu (10):
  machine: export register_compat_prop()
  accel: introduce AccelClass.global_props
  vl: clean up global property registerations
  migration: let MigrationState be a qdev
  migration: move global_state.optional out
  migration: move only_migratable to MigrationState
  migration: move skip_configuration out
  migration: move skip_section_footers
  migration: merge enforce_config_section somewhat
  migration: hmp: dump globals

 accel/accel.c                    |   6 ++
 hmp.c                            |   3 +
 hw/core/machine.c                |  13 -----
 hw/core/qdev-properties.c        |  21 +++++++
 hw/i386/pc_piix.c                |   3 -
 hw/ppc/spapr.c                   |   3 -
 hw/xen/xen-common.c              |  25 +++++++--
 include/hw/compat.h              |  12 ++++
 include/hw/qdev-properties.h     |  29 ++++++++++
 include/migration/global_state.h |   1 -
 include/migration/misc.h         |   6 +-
 include/sysemu/accel.h           |  11 ++++
 include/sysemu/sysemu.h          |   1 -
 migration/global_state.c         |   9 +--
 migration/migration.c            | 118 +++++++++++++++++++++++++++++++--------
 migration/migration.h            |  33 +++++++++++
 migration/savevm.c               |  32 ++---------
 vl.c                             |  41 ++++++++++++--
 18 files changed, 277 insertions(+), 90 deletions(-)

-- 
2.7.4

             reply	other threads:[~2017-06-27  4:10 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-27  4:10 Peter Xu [this message]
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 01/10] machine: export register_compat_prop() Peter Xu
2017-06-27 14:55   ` Eduardo Habkost
2017-06-27 15:05     ` Eric Blake
2017-06-28  6:57       ` Peter Xu
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 02/10] accel: introduce AccelClass.global_props Peter Xu
2017-06-27 14:55   ` Eduardo Habkost
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 03/10] vl: clean up global property registerations Peter Xu
2017-06-27 14:56   ` Eduardo Habkost
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 04/10] migration: let MigrationState be a qdev Peter Xu
2017-06-27 14:47   ` Eduardo Habkost
2017-06-28  7:01     ` Peter Xu
2017-06-27 14:59   ` Eduardo Habkost
2017-06-30  2:18   ` Max Reitz
2017-06-30  3:03     ` Peter Xu
2017-06-30  7:11       ` Peter Xu
2017-06-30 12:33         ` Max Reitz
2017-06-30 13:05           ` Eric Blake
2017-06-30 13:57             ` Max Reitz
2017-07-03  1:52               ` Peter Xu
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 05/10] migration: move global_state.optional out Peter Xu
2017-06-28 18:43   ` Eduardo Habkost
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 06/10] migration: move only_migratable to MigrationState Peter Xu
2017-06-27 11:15   ` Eric Blake
2017-06-27 13:36     ` Eduardo Habkost
2017-06-28  6:54       ` Peter Xu
2017-06-28 17:46         ` Eduardo Habkost
2017-06-28 19:13   ` Eduardo Habkost
2017-06-29  2:33     ` Peter Xu
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 07/10] migration: move skip_configuration out Peter Xu
2017-06-28 18:44   ` Eduardo Habkost
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 08/10] migration: move skip_section_footers Peter Xu
2017-06-28 18:45   ` Eduardo Habkost
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 09/10] migration: merge enforce_config_section somewhat Peter Xu
2017-06-28 19:06   ` Eduardo Habkost
2017-06-28 22:42     ` Juan Quintela
2017-06-29  3:00       ` Peter Xu
2017-06-29 19:18         ` Eduardo Habkost
2017-06-30  6:10           ` Peter Xu
2017-06-27  4:10 ` [Qemu-devel] [PATCH v6 10/10] migration: hmp: dump globals Peter Xu
2017-06-28 17:12   ` Eduardo Habkost
2017-06-30  6:22     ` Peter Xu
2017-06-28  7:15 ` [Qemu-devel] [PATCH v6 11/10] migration: add comment for TYPE_MIGRATE Peter Xu
2017-06-28  7:37   ` Juan Quintela
2017-06-28 15:37   ` Eduardo Habkost
2017-06-29  3:08     ` Peter Xu

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=1498536619-14548-1-git-send-email-peterx@redhat.com \
    --to=peterx@redhat.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@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 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.