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 07/10] migration: move skip_configuration out
Date: Tue, 27 Jun 2017 12:10:16 +0800 [thread overview]
Message-ID: <1498536619-14548-8-git-send-email-peterx@redhat.com> (raw)
In-Reply-To: <1498536619-14548-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().
Reviewed-by: Juan Quintela <quintela@redhat.com>
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 f07d40a..8429187 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3581,7 +3581,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 459e6ab..1f3688d 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 @@ static GlobalProperty xen_compat_props[] = {
.property = "store-global-state",
.value = "off",
},
+ {
+ .driver = "migration",
+ .property = "send-configuration",
+ .value = "off",
+ },
{ /* end of list */ },
};
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 1499cd3..0a8c61f 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-27 4:10 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-27 4:10 [Qemu-devel] [PATCH v6 00/10] migration: objectify MigrationState Peter Xu
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 ` Peter Xu [this message]
2017-06-28 18:44 ` [Qemu-devel] [PATCH v6 07/10] migration: move skip_configuration out 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-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.