On Tue, Jun 19, 2018 at 07:41:24AM +0200, Greg Kurz wrote: > On Tue, 19 Jun 2018 10:09:05 +1000 > David Gibson wrote: > > > On Mon, Jun 18, 2018 at 02:26:35PM +0200, Greg Kurz wrote: > > > A per-CPU machine data pointer was recently added to PowerPCCPU. The > > > motivation is to to hide platform specific details from the core CPU > > > code. This per-CPU data can hold state which is revelant to the guest > > > though, eg, Virtual Processor Areas, and we whould migrate this state. > > > > > > This patch adds the plumbing so that we can migrate the per-CPU data > > > for PAPR guests. We only do this for newer machine types for the sake > > > of backword compatibility. No state is migrated for the moment: the > > > vmstate_spapr_cpu_state structure will be populated by subsequent > > > patches. > > > > > > Signed-off-by: Greg Kurz > > > > Applied, though I fixed some spelling and spacing errors along the way. > > > > Thanks but I now realize I have a nit... > > > > --- > > > hw/ppc/spapr.c | 5 +++++ > > > hw/ppc/spapr_cpu_core.c | 27 +++++++++++++++++++++++---- > > > include/hw/ppc/spapr_cpu_core.h | 1 + > > > 3 files changed, 29 insertions(+), 4 deletions(-) > > > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > > index db0fb385d4e0..37db3e8bc6ca 100644 > > > --- a/hw/ppc/spapr.c > > > +++ b/hw/ppc/spapr.c > > > @@ -4116,6 +4116,11 @@ DEFINE_SPAPR_MACHINE(3_0, "3.0", true); > > > { \ > > > .driver = TYPE_POWERPC_CPU, \ > > > .property = "pre-3.0-migration", \ > > > + .value = "on", \ > > > + }, \ > > > + { \ > > > + .driver = TYPE_SPAPR_CPU_CORE, \ > > > + .property = "pre-3.0-migration", \ > > > .value = "on", \ > > > }, > > > > > > diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c > > > index aef3be33a3bb..96d1dfad00e1 100644 > > > --- a/hw/ppc/spapr_cpu_core.c > > > +++ b/hw/ppc/spapr_cpu_core.c > > > @@ -129,6 +129,15 @@ static void spapr_cpu_core_unrealize(DeviceState *dev, Error **errp) > > > g_free(sc->threads); > > > } > > > > > > +static const VMStateDescription vmstate_spapr_cpu_state = { > > > + .name = "spapr_cpu", > > > + .version_id = 1, > > > + .minimum_version_id = 1, > > > + .fields = (VMStateField[]) { > > > + VMSTATE_END_OF_LIST() > > > + }, > > > +}; > > > + > > > static void spapr_realize_vcpu(PowerPCCPU *cpu, sPAPRMachineState *spapr, > > > Error **errp) > > > { > > > @@ -164,7 +173,8 @@ error: > > > error_propagate(errp, local_err); > > > } > > > > > > -static PowerPCCPU *spapr_create_vcpu(sPAPRCPUCore *sc, int i, Error **errp) > > > +static PowerPCCPU *spapr_create_vcpu(sPAPRCPUCore *sc, int i, > > > + sPAPRMachineState *spapr, Error **errp) > > ... here. This spapr argument comes from a previous version. I didn't need it > in the end, but I forgot to remove it :( > > Do you want me to resend or can you fix that in your tree ? I've fixed it up in my tree. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson