On Fri, Jun 23, 2017 at 12:46:41PM +0800, Peter Xu wrote: > Put it into MigrationState then we can use the properties to specify > whether to enable storing global state. > > Removing global_state_set_optional() since now we can use HW_COMPAT_2_3 > for x86/power, and AccelClass.global_props for Xen. > > Reviewed-by: Juan Quintela <quint...@redhat.com> > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > hw/i386/pc_piix.c | 1 - > hw/ppc/spapr.c | 1 - > hw/xen/xen-common.c | 11 ++++++++++- > include/hw/compat.h | 4 ++++ > include/migration/global_state.h | 1 - > migration/global_state.c | 9 ++------- > migration/migration.c | 7 +++++++ > migration/migration.h | 6 ++++++ > 8 files changed, 29 insertions(+), 11 deletions(-) > [...] > diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c > index d3fa705..9163a0a 100644 > --- a/hw/xen/xen-common.c > +++ b/hw/xen/xen-common.c > @@ -139,19 +139,28 @@ static int xen_init(MachineState *ms) > } > qemu_add_vm_change_state_handler(xen_change_state_handler, NULL); > > - global_state_set_optional(); > savevm_skip_configuration(); > savevm_skip_section_footers(); > > return 0; > } > > +GlobalProperty xen_compat_props[] = {
This can be static. > + { > + .driver = "migration", > + .property = "store-global-state", > + .value = "off", > + }, > + { .driver = NULL, .property = NULL, .value = NULL }, Normally this is written as: { /* end of list */ }, > +}; > + [...] I didn't review the rest yet, but it seems to be good. -- Eduardo