All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kurz <groug@kaod.org>
To: Bharata B Rao <bharata@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
	david@gibson.dropbear.id.au, imammedo@redhat.com,
	nikunj@linux.vnet.ibm.com, pbonzini@redhat.com
Subject: Re: [Qemu-devel] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order
Date: Thu, 7 Jul 2016 18:04:10 +0200	[thread overview]
Message-ID: <20160707180410.351fb5eb@bahia.lan> (raw)
In-Reply-To: <1467903025-13383-1-git-send-email-bharata@linux.vnet.ibm.com>

On Thu,  7 Jul 2016 20:20:20 +0530
Bharata B Rao <bharata@linux.vnet.ibm.com> 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/qemu-devel@nongnu.org/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(-)
> 

  parent reply	other threads:[~2016-07-07 16:04 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-07 14:50 [Qemu-devel] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order Bharata B Rao
2016-07-07 14:50 ` [Qemu-devel] [RFC PATCH v2 1/5] cpu, target-ppc: Move cpu_vmstate_[un]register calls to cpu_common_[un]realize Bharata B Rao
2016-07-07 14:50 ` [Qemu-devel] [RFC PATCH v2 2/5] cpu: Introduce CPUState::stable_cpu_id Bharata B Rao
2016-07-07 17:52   ` Greg Kurz
2016-07-08  5:21     ` David Gibson
2016-07-08  5:19   ` David Gibson
2016-07-08 11:11     ` Igor Mammedov
2016-07-11  3:22       ` David Gibson
2016-07-11  3:35         ` Bharata B Rao
2016-07-11  7:42           ` Igor Mammedov
2016-07-11 13:42           ` [Qemu-devel] [PATCH] VARIANT 1: reuse device compat logic to pick preffered CPU's migration instance_id Igor Mammedov
2016-07-11 13:42             ` [Qemu-devel] [PATCH] VARIANT 2: use machine specific callback to pick " Igor Mammedov
2016-07-11 14:15             ` [Qemu-devel] [PATCH] VARIANT 1: reuse device compat logic to pick preffered " Paolo Bonzini
2016-07-12  5:07             ` David Gibson
2016-07-12  8:11               ` Igor Mammedov
2016-07-13  1:39                 ` David Gibson
2016-07-12  7:06             ` Bharata B Rao
2016-07-12  8:21               ` Igor Mammedov
2016-07-12 11:08               ` [Qemu-devel] [PATCH v2 1/2] cpu: add migration_id to allow board to provide " Igor Mammedov
2016-07-12 11:08                 ` [Qemu-devel] [PATCH v2 2/2] pc: fix migration failure after cpu hot-unplung Igor Mammedov
2016-07-11  7:58         ` [Qemu-devel] [RFC PATCH v2 2/5] cpu: Introduce CPUState::stable_cpu_id Igor Mammedov
2016-07-12  5:09           ` David Gibson
2016-07-07 14:50 ` [Qemu-devel] [RFC PATCH v2 3/5] spapr: Set stable_cpu_id for threads of CPU cores Bharata B Rao
2016-07-07 16:11   ` Greg Kurz
2016-07-08  5:25     ` David Gibson
2016-07-08  7:46       ` Greg Kurz
2016-07-08  7:59         ` David Gibson
2016-07-08 15:24           ` Greg Kurz
2016-07-11  3:23             ` David Gibson
2016-07-08  5:24   ` David Gibson
2016-07-08  6:41     ` Bharata B Rao
2016-07-08  7:39       ` David Gibson
2016-07-08 10:59         ` Igor Mammedov
2016-07-11  3:12           ` Bharata B Rao
2016-07-11  3:26           ` David Gibson
2016-07-11  8:15             ` Igor Mammedov
2016-07-12  4:41               ` David Gibson
2016-07-07 14:50 ` [Qemu-devel] [RFC PATCH v2 4/5] xics: Use stable_cpu_id instead of cpu_index in XICS code Bharata B Rao
2016-07-08  5:32   ` David Gibson
2016-07-07 14:50 ` [Qemu-devel] [RFC PATCH v2 5/5] spapr: Enable the use of stable_cpu_id from pseries-2.7 onwards Bharata B Rao
2016-07-07 16:04 ` Greg Kurz [this message]
2016-07-08  5:34   ` [Qemu-devel] [RFC PATCH v2 0/5] sPAPR: Fix migration when CPUs are removed in random order David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160707180410.351fb5eb@bahia.lan \
    --to=groug@kaod.org \
    --cc=bharata@linux.vnet.ibm.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=imammedo@redhat.com \
    --cc=nikunj@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.