On Sun, 10 Sep 2017 15:37:33 +0100 Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> wrote:
> Commit a90db15 "target-ppc: Convert ppc cpu savevm to VMStateDescription" > appears to drop the internal CPU IRQ state from the migration stream. Whilst > testing migration on g3beige/mac99 machines, test images would randomly fail > to > resume unless a key was pressed on the VGA console. > > Further investigation suggests that internal CPU IRQ state isn't being > preserved and so interrupts asserted at the time of migration are lost. Adding > the pending_interrupts and irq_input_state fields back into the migration > stream appears to fix the problem here during local tests. > > As part of this commit we bump the vmstate_ppc version from 5 to 6 to handle > the additional fields. > And so this unconditionally breaks backward migration... what about adding a subsection for this ? > Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> > --- > target/ppc/machine.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/target/ppc/machine.c b/target/ppc/machine.c > index e59049f..8fec1a4 100644 > --- a/target/ppc/machine.c > +++ b/target/ppc/machine.c > @@ -647,7 +647,7 @@ static const VMStateDescription vmstate_compat = { > > const VMStateDescription vmstate_ppc_cpu = { > .name = "cpu", > - .version_id = 5, > + .version_id = 6, > .minimum_version_id = 5, > .minimum_version_id_old = 4, > .load_state_old = cpu_load_old, > @@ -678,6 +678,10 @@ const VMStateDescription vmstate_ppc_cpu = { > VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU), > /* FIXME: access_type? */ > > + /* Interrupt state */ > + VMSTATE_UINT32_V(env.pending_interrupts, PowerPCCPU, 6), > + VMSTATE_UINT32_V(env.irq_input_state, PowerPCCPU, 6), > + > /* Sanity checking */ > VMSTATE_UINTTL_TEST(mig_msr_mask, PowerPCCPU, cpu_pre_2_8_migration), > VMSTATE_UINT64_TEST(mig_insns_flags, PowerPCCPU, > cpu_pre_2_8_migration),
pgpHVyRpeOu9l.pgp
Description: OpenPGP digital signature