Unfortunately, a bug already slipped into the qemu-2.7 release which breaks migration of the pseries-2.6 machine type from qemu v2.6.0 to qemu v2.7.0. That bug also breaks migration from v2.6.0 to current master. In addition there have been several more changes which have inadvertently broken migration from v2.7.0 to current master for both pseries-2.6 and pseries-2.7 machine types.
One of those was fixed - in a way - by 9b54ca0, however it was done in such a way as to break backwards migration from current master to v2.7.0. It turns out that supporting backwards migration is more important than I realized at the time. So, this series contains several fixes for migration. Between them, they allow migration both forwards and backwards between qemu v2.6.0 and current master (and therefore, I hope, v2.8.0). Unfortunately, because of the already released bug, there's no reasonable way to fix migration from current master back to v2.7.0 as well, and, obviously, no way at all to fix the existing breakage between v2.6.0 and v2.7.0. However, I'm also hoping to get patch 1/5 of this series applied to the 2.7 stable branch. If that happens, it should be possible to freely migrate between v2.6.0, v2.7.1 and current master / 2.8, which is about the best we can hope for. I've done basic testing of these with all the combinations of source and destination being either v2.6.0, v2.7.0 + patch 1/5 and ppc-for-2.8 + this series, and with all the applicable machine types for each of those combinations. Each test was with just a basic default hardware setup, running a RHEL7.3 guest, no fancier combinations. Dave, could you please sanity check my compatibility sheanningans and send an R-b (and an acked-by for patch 2/5, which isn't strictly ppc related). Michael, if you could test this on any combinations that occur to you, that would be most helpful. I'm hoping to get some reviews and squeeze this into v2.8.0, which will mean a pull request within a couple of days. Changes since v1: * Removed some debug code from 1/5 * Fixed some trivial style errors David Gibson (5): target-ppc: Fix CPU migration from qemu-2.6 <-> later versions migration: Add VMSTATE_UINTTL_TEST() target-ppc: Allow eventual removal of old migration mistakes Revert "spapr: Fix migration of PCI host bridges from qemu-2.7" spapr: Fix 2.7<->2.8 migration of PCI host bridge hw/ppc/spapr.c | 10 ++++++++++ hw/ppc/spapr_pci.c | 35 ++++++++++++++++++++++++++--------- include/hw/pci-host/spapr.h | 6 ++++++ include/migration/cpu.h | 4 ++++ target-ppc/cpu.h | 7 +++++++ target-ppc/machine.c | 39 +++++++++++++++++++++++++++++++++++---- target-ppc/translate_init.c | 6 ++++++ 7 files changed, 94 insertions(+), 13 deletions(-) -- 2.7.4