target-ppc: Allow eventual removal of old migration mistakes
commit146c11f16f12dbfea62cbd7f865614bb6fcbc6b5
authorDavid Gibson <david@gibson.dropbear.id.au>
Mon, 21 Nov 2016 05:29:30 +0000 (21 16:29 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 23 Nov 2016 01:00:48 +0000 (23 12:00 +1100)
treec4176149020c2d57d3f2a8d380389ac23484e4ec
parent3fed86eefc15cda07270225731399ecd787153b8
target-ppc: Allow eventual removal of old migration mistakes

Until very recently, the vmstate for ppc cpus included some poorly
thought out VMSTATE_EQUAL() components, that can easily break
migration compatibility, and did so between qemu-2.6 and later
versions.  A hack was recently added which fixes this migration
breakage, but it leaves the unhelpful cruft of these fields in the
migration stream.

This patch adds a new cpu property allowing these fields to be removed
from the stream entirely.  For the pseries-2.8 machine type - which
comes after the fix - and for all non-pseries machine types - which
aren't mature enough to care about cross-version migration - we remove
the fields from the stream.

For pseries-2.7 and earlier, The migration hack remains in place,
allowing backwards and forwards migration with the older machine
types.

This restricts the migration compatibility cruft to older machine
types, and at least opens the possibility of eventually deprecating
and removing it entirely.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
hw/ppc/spapr.c
target-ppc/cpu.h
target-ppc/machine.c
target-ppc/translate_init.c