[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are r
Re: [Qemu-devel] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order
Thu, 7 Jul 2016 18:04:10 +0200
On Thu, 7 Jul 2016 20:20:20 +0530
Bharata B Rao <address@hidden> wrote:
> 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
> - 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
I'm not very comfortable with this. Shouldn't it be the other way round
actually: cpu_dt_id depending on stable_cpu_id ?
I think we're missing something like a stable_core_id.
I'll illustrate that with a comment on patch 3/5.
> 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: 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(-)
- Re: [Qemu-devel] [RFC PATCH v2 2/5] cpu: Introduce CPUState::stable_cpu_id, (continued)