Message ID | 1458568928-3055-2-git-send-email-clg@fr.ibm.com |
---|---|
State | New |
Headers | show |
On 21.03.2016 15:02, Cédric Le Goater wrote: > This address is changed by the linux kernel using the H_SET_MODE hcall > and needs to be migrated in order to restart a spapr VM running in > TCG. Other platforms should not be affected. > > Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> > --- > target-ppc/machine.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/target-ppc/machine.c b/target-ppc/machine.c > index 692121e98319..a418d463db83 100644 > --- a/target-ppc/machine.c > +++ b/target-ppc/machine.c > @@ -553,6 +553,9 @@ const VMStateDescription vmstate_ppc_cpu = { > VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU), > /* FIXME: access_type? */ > > + /* Effective Address of interrupt vectors */ > + VMSTATE_UINTTL(env.excp_prefix, PowerPCCPU), > + > /* Sanity checking */ > VMSTATE_UINTTL_EQUAL(env.msr_mask, PowerPCCPU), > VMSTATE_UINT64_EQUAL(env.insns_flags, PowerPCCPU), I'm really no expert with all this migration stuff, but don't you have to bump the version_id when you add new fields to the vmstate? ... and/or use VMSTATE_UINTTL_V() so that migration from older versions of QEMU to the current one also still works with KVM? For example, is it still possible to migrate from QEMU 2.5 to QEMU 2.6 in KVM if you only use VMSTATE_UINTTL without the _V suffix? Thomas
On Mon, 21 Mar 2016 17:18:17 +0100 Thomas Huth <thuth@redhat.com> wrote: > On 21.03.2016 15:02, Cédric Le Goater wrote: > > This address is changed by the linux kernel using the H_SET_MODE hcall > > and needs to be migrated in order to restart a spapr VM running in > > TCG. Other platforms should not be affected. > > > > Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> > > --- > > target-ppc/machine.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/target-ppc/machine.c b/target-ppc/machine.c > > index 692121e98319..a418d463db83 100644 > > --- a/target-ppc/machine.c > > +++ b/target-ppc/machine.c > > @@ -553,6 +553,9 @@ const VMStateDescription vmstate_ppc_cpu = { > > VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU), > > /* FIXME: access_type? */ > > > > + /* Effective Address of interrupt vectors */ > > + VMSTATE_UINTTL(env.excp_prefix, PowerPCCPU), > > + > > /* Sanity checking */ > > VMSTATE_UINTTL_EQUAL(env.msr_mask, PowerPCCPU), > > VMSTATE_UINT64_EQUAL(env.insns_flags, PowerPCCPU), > > I'm really no expert with all this migration stuff, but don't you have > to bump the version_id when you add new fields to the vmstate? Yes... > ... and/or use VMSTATE_UINTTL_V() so that migration from older versions ... and also yes. > of QEMU to the current one also still works with KVM? For example, is it > still possible to migrate from QEMU 2.5 to QEMU 2.6 in KVM if you only > use VMSTATE_UINTTL without the _V suffix? > No we really want to use the _V version here: it indicates that starting with this version (v6), cpu objects stream env.excp_prefix. > Thomas > > -- Greg
diff --git a/target-ppc/machine.c b/target-ppc/machine.c index 692121e98319..a418d463db83 100644 --- a/target-ppc/machine.c +++ b/target-ppc/machine.c @@ -553,6 +553,9 @@ const VMStateDescription vmstate_ppc_cpu = { VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU), /* FIXME: access_type? */ + /* Effective Address of interrupt vectors */ + VMSTATE_UINTTL(env.excp_prefix, PowerPCCPU), + /* Sanity checking */ VMSTATE_UINTTL_EQUAL(env.msr_mask, PowerPCCPU), VMSTATE_UINT64_EQUAL(env.insns_flags, PowerPCCPU),
This address is changed by the linux kernel using the H_SET_MODE hcall and needs to be migrated in order to restart a spapr VM running in TCG. Other platforms should not be affected. Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> --- target-ppc/machine.c | 3 +++ 1 file changed, 3 insertions(+)