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
next 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.