qemu-ppc
[Top][All Lists]
Advanced

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

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


From: Greg Kurz
Subject: Re: [Qemu-ppc] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order
Date: 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
>   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.
> 

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_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(-)
> 




reply via email to

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