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 v4 07/10] migration: move skip_configuration out
Date: Wed, 21 Jun 2017 15:52:05 +0800 [thread overview]
Message-ID: <1498031528-1990-8-git-send-email-peterx@redhat.com> (raw)
In-Reply-To: <1498031528-1990-1-git-send-email-peterx@redhat.com>
It was in SaveState but now moved to MigrationState altogether, reverted
its meaning, then renamed to "send_configuration". Again, using
HW_COMPAT_2_3 for old PC/SPAPR machines, and accel_register_prop() for
xen_init().
Removing savevm_skip_configuration().
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/i386/pc_piix.c | 1 -
hw/ppc/spapr.c | 1 -
hw/xen/xen-common.c | 6 +++++-
include/hw/compat.h | 4 ++++
include/migration/misc.h | 1 -
migration/migration.c | 2 ++
migration/migration.h | 3 +++
migration/savevm.c | 15 ++++-----------
8 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 3b51297..488fc0a 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -318,7 +318,6 @@ static void pc_compat_2_3(MachineState *machine)
if (kvm_enabled()) {
pcms->smm = ON_OFF_AUTO_OFF;
}
- savevm_skip_configuration();
}
static void pc_compat_2_2(MachineState *machine)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index edbdbfd..29fac1b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3580,7 +3580,6 @@ static void spapr_machine_2_3_instance_options(MachineState *machine)
{
spapr_machine_2_4_instance_options(machine);
savevm_skip_section_footers();
- savevm_skip_configuration();
}
static void spapr_machine_2_3_class_options(MachineClass *mc)
diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c
index 9163a0a..6e52fb0 100644
--- a/hw/xen/xen-common.c
+++ b/hw/xen/xen-common.c
@@ -139,7 +139,6 @@ static int xen_init(MachineState *ms)
}
qemu_add_vm_change_state_handler(xen_change_state_handler, NULL);
- savevm_skip_configuration();
savevm_skip_section_footers();
return 0;
@@ -151,6 +150,11 @@ GlobalProperty xen_compat_props[] = {
.property = "store-global-state",
.value = "off",
},
+ {
+ .driver = "migration",
+ .property = "send-configuration",
+ .value = "off",
+ },
{ .driver = NULL, .property = NULL, .value = NULL },
};
diff --git a/include/hw/compat.h b/include/hw/compat.h
index a506a74..1a3fd94 100644
--- a/include/hw/compat.h
+++ b/include/hw/compat.h
@@ -183,6 +183,10 @@
.value = "off",\
},{\
.driver = "migration",\
+ .property = "send-configuration",\
+ .value = "off",\
+ },{\
+ .driver = "migration",\
.property = "store-global-state",\
.value = "off",\
},
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 6ac3307..f30db4d 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -42,7 +42,6 @@ int64_t self_announce_delay(int round)
void dump_vmstate_json_to_file(FILE *out_fp);
void savevm_skip_section_footers(void);
-void savevm_skip_configuration(void);
/* migration/migration.c */
void migration_object_init(void);
diff --git a/migration/migration.c b/migration/migration.c
index 67f9e68..414e14d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1985,6 +1985,8 @@ static Property migration_properties[] = {
DEFINE_PROP_BOOL("store-global-state", MigrationState,
store_global_state, true),
DEFINE_PROP_BOOL("only-migratable", MigrationState, only_migratable, false),
+ DEFINE_PROP_BOOL("send-configuration", MigrationState,
+ send_configuration, true),
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/migration/migration.h b/migration/migration.h
index 34377dd..4d4ea0d 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -142,6 +142,9 @@ struct MigrationState
/* Whether the VM is only allowing for migratable devices */
bool only_migratable;
+
+ /* Whether we send QEMU_VM_CONFIGURATION during migration */
+ bool send_configuration;
};
void migrate_set_state(int *state, int old_state, int new_state);
diff --git a/migration/savevm.c b/migration/savevm.c
index 917ab05..f1e144d 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -287,7 +287,6 @@ typedef struct SaveStateEntry {
typedef struct SaveState {
QTAILQ_HEAD(, SaveStateEntry) handlers;
int global_section_id;
- bool skip_configuration;
uint32_t len;
const char *name;
uint32_t target_page_bits;
@@ -296,15 +295,8 @@ typedef struct SaveState {
static SaveState savevm_state = {
.handlers = QTAILQ_HEAD_INITIALIZER(savevm_state.handlers),
.global_section_id = 0,
- .skip_configuration = false,
};
-void savevm_skip_configuration(void)
-{
- savevm_state.skip_configuration = true;
-}
-
-
static void configuration_pre_save(void *opaque)
{
SaveState *state = opaque;
@@ -970,11 +962,11 @@ void qemu_savevm_state_header(QEMUFile *f)
qemu_put_be32(f, QEMU_VM_FILE_MAGIC);
qemu_put_be32(f, QEMU_VM_FILE_VERSION);
- if (!savevm_state.skip_configuration || enforce_config_section()) {
+ if (migrate_get_current()->send_configuration ||
+ enforce_config_section()) {
qemu_put_byte(f, QEMU_VM_CONFIGURATION);
vmstate_save_state(f, &vmstate_configuration, &savevm_state, 0);
}
-
}
void qemu_savevm_state_begin(QEMUFile *f)
@@ -1995,7 +1987,8 @@ int qemu_loadvm_state(QEMUFile *f)
return -ENOTSUP;
}
- if (!savevm_state.skip_configuration || enforce_config_section()) {
+ if (migrate_get_current()->send_configuration ||
+ enforce_config_section()) {
if (qemu_get_byte(f) != QEMU_VM_CONFIGURATION) {
error_report("Configuration section missing");
return -EINVAL;
--
2.7.4
next prev parent reply other threads:[~2017-06-21 7:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-21 7:51 [Qemu-devel] [PATCH v4 00/10] migration: objectify MigrationState Peter Xu
2017-06-21 7:51 ` [Qemu-devel] [PATCH v4 01/10] machine: export register_compat_prop() Peter Xu
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 02/10] accel: introduce AccelClass.global_props Peter Xu
2017-06-21 12:23 ` Eduardo Habkost
2017-06-22 4:25 ` Peter Xu
2017-06-22 17:28 ` Eduardo Habkost
2017-06-23 4:44 ` Peter Xu
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 03/10] vl: clean up global property registerations Peter Xu
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 04/10] migration: let MigrationState be a qdev Peter Xu
2017-06-21 8:58 ` Juan Quintela
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 05/10] migration: move global_state.optional out Peter Xu
2017-06-21 8:59 ` Juan Quintela
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 06/10] migration: move only_migratable to MigrationState Peter Xu
2017-06-21 7:52 ` Peter Xu [this message]
2017-06-21 9:00 ` [Qemu-devel] [PATCH v4 07/10] migration: move skip_configuration out Juan Quintela
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 08/10] migration: move skip_section_footers Peter Xu
2017-06-21 9:01 ` Juan Quintela
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 09/10] migration: merge enforce_config_section somewhat Peter Xu
2017-06-21 9:02 ` Juan Quintela
2017-06-21 7:52 ` [Qemu-devel] [PATCH v4 10/10] migration: hmp: dump globals Peter Xu
2017-06-21 9:03 ` 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=1498031528-1990-8-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.