Starting from pseries-2.7, turn on has-stable-cpu-id property that switches to using stable_cpu_id over cpu_index for cpu vmstate registration and in XICS code.
This allows migration to work when CPU cores are not necessarily unplugged in LIFO order. Signed-off-by: Bharata B Rao <bhar...@linux.vnet.ibm.com> --- hw/ppc/spapr.c | 14 ++++++++++++++ include/hw/compat.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 89e61b9..4ca6072 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2495,6 +2495,14 @@ static const TypeInfo spapr_machine_info = { /* * pseries-2.7 */ +#define SPAPR_COMPAT_2_7 \ + HW_COMPAT_2_7 \ + { \ + .driver = TYPE_CPU, \ + .property = "has-stable-cpu-id", \ + .value = "on", \ + }, + static void spapr_machine_2_7_instance_options(MachineState *machine) { } @@ -2502,6 +2510,7 @@ static void spapr_machine_2_7_instance_options(MachineState *machine) static void spapr_machine_2_7_class_options(MachineClass *mc) { /* Defaults for the latest behaviour inherited from the base class */ + SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7); } DEFINE_SPAPR_MACHINE(2_7, "2.7", true); @@ -2515,6 +2524,11 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", true); .driver = TYPE_SPAPR_PCI_HOST_BRIDGE,\ .property = "ddw",\ .value = stringify(off),\ + }, \ + { \ + .driver = TYPE_CPU, \ + .property = "has-stable-cpu-id", \ + .value = "off", \ }, static void spapr_machine_2_6_instance_options(MachineState *machine) diff --git a/include/hw/compat.h b/include/hw/compat.h index 636befe..8e639e2 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,6 +1,9 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H +#define HW_COMPAT_2_7 \ + /* empty */ + #define HW_COMPAT_2_6 \ /* empty */ -- 2.7.4