qemu-ppc
[Top][All Lists]
Advanced

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

[Qemu-ppc] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed


From: Bharata B Rao
Subject: [Qemu-ppc] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order
Date: Thu, 7 Jul 2016 20:20:20 +0530

device_add/del based CPU hotplug and unplug support is upstream for
sPAPR PowerPC and is under development for x86. Both of these will
support CPU device removal in random order (and not necessarily in LIFO
order). Random order removal will result in holes in cpu_index range
which causes migration to fail. This needs fixes in both generic code
as well as arch specific code.

- CPUState::stable_cpu_id is newly introduced and used as instance_id when
  registering CPU devices using vmstate_register. stable_cpu_id is set by the
  target machine code. To support forward migration, as per Igor's
  suggestion, this needs to be done conditionally based on machine type
  version.
- From pseries-2.7 onwards, we start using stable_cpu_id for migration as
  well as in XICS code.

vmstate registration calls are moved to cpu_common_realizefn and newly
introduced cpu_common_unrealizefn.

This patchset depends on Greg Kurz's patchset where among other things,
he is deriving cpu_dt_it (which is stable_cpu_id for pseries-2.7 onwards)
based on core-id and hence is based on ppc-vcpu-dt-id-rework branch of his
tree.

Changes in v2
-------------
- s/migration_id/stable_cpu_id and this is set by the machine code
  after CPU init but before realize.
- s/use-migration-id/has-migration-id and use DEFINE_PROP_BOOL to simplify
  the code.
- Start with use-migration-id turned off by default.
- Consolidate the code that obtains the 'server' in XICS code into a
  separate routine.

v1: https://www.mail-archive.com/address@hidden/msg384135.html

Bharata B Rao (5):
  cpu,target-ppc: Move cpu_vmstate_[un]register calls to
    cpu_common_[un]realize
  cpu: Introduce CPUState::stable_cpu_id
  spapr: Set stable_cpu_id for threads of CPU cores
  xics: Use stable_cpu_id instead of cpu_index in XICS code
  spapr: Enable the use of stable_cpu_id from pseries-2.7 onwards

 exec.c                      | 55 ++++++++++++++++++++++++++++-----------------
 hw/intc/xics.c              | 21 +++++++++++++----
 hw/intc/xics_kvm.c          | 10 ++++-----
 hw/intc/xics_spapr.c        | 29 ++++++++++++++----------
 hw/ppc/spapr.c              | 14 ++++++++++++
 hw/ppc/spapr_cpu_core.c     |  7 ++++++
 include/hw/compat.h         |  3 +++
 include/hw/ppc/xics.h       |  1 +
 include/qom/cpu.h           |  7 ++++++
 qom/cpu.c                   | 13 +++++++++++
 target-ppc/cpu-qom.h        |  2 ++
 target-ppc/translate_init.c |  3 +++
 12 files changed, 123 insertions(+), 42 deletions(-)

-- 
2.7.4




reply via email to

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