qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v3 00/13] migration: objectify MigrationState


From: Peter Xu
Subject: [Qemu-devel] [PATCH v3 00/13] migration: objectify MigrationState
Date: Mon, 19 Jun 2017 20:49:35 +0800

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]