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 v3 00/13] migration: objectify MigrationState
Date: Mon, 19 Jun 2017 20:49:35 +0800 [thread overview]
Message-ID: <1497876588-947-1-git-send-email-peterx@redhat.com> (raw)
v3 contains too much new things. So here comes a new cover letter with
richer information.
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. :-)
Here's what individual patch does:
patch 1-8: introduce AccelState.global_props list.
This is an idea suggested by Eduardo in general, it is just more
complicated than I thought. Here each patch has rich commit
message to read (especially patch 6). Things to mention:
- patch 5 fixes a test break
- patch 8 added a trace so that I can verify all the x86 cpu
properties are applied correctly on tcg/x86/pc-i440fx-*.
patch 9-13: the original patches for the objectify of MigrationState.
Please kindly review. Thanks.
Peter Xu (13):
machine: export register_compat_prop()
qdev: enhance global_prop_list_add()
qdev: remove qdev_prop_register_global()
accel: introduce AccelState.global_props
tests: avoid check GlobalProperty.used
kvm: let kvm use AccelState.global_props
tcg: use AccelState.global_props
trace: add qdev_global_prop_apply
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
Makefile.objs | 1 +
accel.c | 50 +++++++++++++++++++++++
hw/core/machine.c | 20 +++------
hw/core/qdev-properties.c | 56 +++++++++++++++++++++++--
hw/core/trace-events | 2 +
hw/i386/pc_piix.c | 11 +++--
hw/ppc/spapr.c | 3 --
hw/xen/xen-common.c | 9 ++--
include/hw/compat.h | 12 ++++++
include/hw/qdev-properties.h | 17 +++++++-
include/migration/global_state.h | 1 -
include/migration/misc.h | 4 +-
include/sysemu/accel.h | 20 +++++++++
include/sysemu/sysemu.h | 1 -
kvm-all.c | 30 ++++++++++++++
migration/global_state.c | 9 +---
migration/migration.c | 88 ++++++++++++++++++++++++++++++----------
migration/migration.h | 33 +++++++++++++++
migration/savevm.c | 28 ++++---------
qom/cpu.c | 8 +---
target/i386/cpu.c | 77 +----------------------------------
target/i386/cpu.h | 11 -----
tests/test-qdev-global-props.c | 12 ------
vl.c | 54 ++++++++++--------------
24 files changed, 339 insertions(+), 218 deletions(-)
create mode 100644 hw/core/trace-events
--
2.7.4
next reply other threads:[~2017-06-19 12:50 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-19 12:49 Peter Xu [this message]
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 01/13] machine: export register_compat_prop() Peter Xu
2017-06-19 14:27 ` Laurent Vivier
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 02/13] qdev: enhance global_prop_list_add() Peter Xu
2017-06-19 15:24 ` Eduardo Habkost
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 03/13] qdev: remove qdev_prop_register_global() Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 04/13] accel: introduce AccelState.global_props Peter Xu
2017-06-19 16:17 ` Eduardo Habkost
2017-06-20 13:20 ` Peter Xu
2017-06-20 13:41 ` Eduardo Habkost
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 05/13] tests: avoid check GlobalProperty.used Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 06/13] kvm: let kvm use AccelState.global_props Peter Xu
2017-06-19 16:14 ` Eduardo Habkost
2017-06-20 13:55 ` Peter Xu
2017-06-20 14:07 ` Eduardo Habkost
2017-06-21 3:00 ` Peter Xu
2017-06-21 12:09 ` Eduardo Habkost
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 07/13] tcg: " Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 08/13] trace: add qdev_global_prop_apply Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 09/13] migration: let MigrationState be a qdev Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 10/13] migration: move global_state.optional out Peter Xu
2017-06-19 15:47 ` Juan Quintela
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 11/13] migration: move only_migratable to MigrationState Peter Xu
2017-06-19 15:50 ` Juan Quintela
2017-06-21 3:07 ` Peter Xu
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 12/13] migration: move skip_configuration out Peter Xu
2017-06-19 15:56 ` Juan Quintela
2017-06-21 3:33 ` Peter Xu
2017-06-21 7:28 ` Juan Quintela
2017-06-19 12:49 ` [Qemu-devel] [PATCH v3 13/13] migration: move skip_section_footers Peter Xu
2017-06-19 15:57 ` Juan Quintela
2017-06-19 15:59 ` [Qemu-devel] [PATCH v3 00/13] migration: objectify MigrationState Juan Quintela
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=1497876588-947-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 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).