On Thu, 20 Aug 2020 16:35:08 +0200 Igor Mammedov <imamm...@redhat.com> wrote:
> On Wed, 19 Aug 2020 11:22:58 -0400 > Eduardo Habkost <ehabk...@redhat.com> wrote: > > > From: Cornelia Huck <coh...@redhat.com> > > > > Add 5.2 machine types for arm/i440fx/q35/s390x/spapr. > > > > Reviewed-by: Andrew Jones <drjo...@redhat.com> > > Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > > Reviewed-by: Greg Kurz <gr...@kaod.org> > > Acked-by: Christian Borntraeger <borntrae...@de.ibm.com> > > Acked-by: David Gibson <da...@gibson.dropbear.id.au> > > Acked-by: Thomas Huth <th...@redhat.com> > > Signed-off-by: Cornelia Huck <coh...@redhat.com> > > Message-Id: <20200819144016.281156-1-coh...@redhat.com> > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > > Is this the latest version of the patch? > It doesn't apply cleanly on top of the current master. Sorry for noise, it was messed up tree on my side, after clean checkout it applies fine. > > > --- > > include/hw/boards.h | 3 +++ > > include/hw/i386/pc.h | 3 +++ > > hw/arm/virt.c | 9 ++++++++- > > hw/core/machine.c | 3 +++ > > hw/i386/pc.c | 3 +++ > > hw/i386/pc_piix.c | 14 +++++++++++++- > > hw/i386/pc_q35.c | 13 ++++++++++++- > > hw/ppc/spapr.c | 15 +++++++++++++-- > > hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++- > > 9 files changed, 71 insertions(+), 6 deletions(-) > > > > diff --git a/include/hw/boards.h b/include/hw/boards.h > > index 426ce5f625..bc5b82ad20 100644 > > --- a/include/hw/boards.h > > +++ b/include/hw/boards.h > > @@ -319,6 +319,9 @@ struct MachineState { > > } \ > > type_init(machine_initfn##_register_types) > > > > +extern GlobalProperty hw_compat_5_1[]; > > +extern const size_t hw_compat_5_1_len; > > + > > extern GlobalProperty hw_compat_5_0[]; > > extern const size_t hw_compat_5_0_len; > > > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > > index 3d7ed3a55e..fe52e165b2 100644 > > --- a/include/hw/i386/pc.h > > +++ b/include/hw/i386/pc.h > > @@ -193,6 +193,9 @@ void pc_system_firmware_init(PCMachineState *pcms, > > MemoryRegion *rom_memory); > > void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid, > > const CPUArchIdList *apic_ids, GArray *entry); > > > > +extern GlobalProperty pc_compat_5_1[]; > > +extern const size_t pc_compat_5_1_len; > > + > > extern GlobalProperty pc_compat_5_0[]; > > extern const size_t pc_compat_5_0_len; > > > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > > index ecfee362a1..acf9bfbece 100644 > > --- a/hw/arm/virt.c > > +++ b/hw/arm/virt.c > > @@ -2546,10 +2546,17 @@ static void machvirt_machine_init(void) > > } > > type_init(machvirt_machine_init); > > > > +static void virt_machine_5_2_options(MachineClass *mc) > > +{ > > +} > > +DEFINE_VIRT_MACHINE_AS_LATEST(5, 2) > > + > > static void virt_machine_5_1_options(MachineClass *mc) > > { > > + virt_machine_5_2_options(mc); > > + compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len); > > } > > -DEFINE_VIRT_MACHINE_AS_LATEST(5, 1) > > +DEFINE_VIRT_MACHINE(5, 1) > > > > static void virt_machine_5_0_options(MachineClass *mc) > > { > > diff --git a/hw/core/machine.c b/hw/core/machine.c > > index 8d1a90c6cf..cf5f2dfaeb 100644 > > --- a/hw/core/machine.c > > +++ b/hw/core/machine.c > > @@ -28,6 +28,9 @@ > > #include "hw/mem/nvdimm.h" > > #include "migration/vmstate.h" > > > > +GlobalProperty hw_compat_5_1[] = {}; > > +const size_t hw_compat_5_1_len = G_N_ELEMENTS(hw_compat_5_1); > > + > > GlobalProperty hw_compat_5_0[] = { > > { "pci-host-bridge", "x-config-reg-migration-enabled", "off" }, > > { "virtio-balloon-device", "page-poison", "false" }, > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > > index 47c5ca3e34..9aa813949c 100644 > > --- a/hw/i386/pc.c > > +++ b/hw/i386/pc.c > > @@ -97,6 +97,9 @@ > > #include "fw_cfg.h" > > #include "trace.h" > > > > +GlobalProperty pc_compat_5_1[] = {}; > > +const size_t pc_compat_5_1_len = G_N_ELEMENTS(pc_compat_5_1); > > + > > GlobalProperty pc_compat_5_0[] = { > > }; > > const size_t pc_compat_5_0_len = G_N_ELEMENTS(pc_compat_5_0); > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > > index b789e83f9a..c5ba70ca17 100644 > > --- a/hw/i386/pc_piix.c > > +++ b/hw/i386/pc_piix.c > > @@ -426,7 +426,7 @@ static void pc_i440fx_machine_options(MachineClass *m) > > machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE); > > } > > > > -static void pc_i440fx_5_1_machine_options(MachineClass *m) > > +static void pc_i440fx_5_2_machine_options(MachineClass *m) > > { > > PCMachineClass *pcmc = PC_MACHINE_CLASS(m); > > pc_i440fx_machine_options(m); > > @@ -435,6 +435,18 @@ static void pc_i440fx_5_1_machine_options(MachineClass > > *m) > > pcmc->default_cpu_version = 1; > > } > > > > +DEFINE_I440FX_MACHINE(v5_2, "pc-i440fx-5.2", NULL, > > + pc_i440fx_5_2_machine_options); > > + > > +static void pc_i440fx_5_1_machine_options(MachineClass *m) > > +{ > > + pc_i440fx_5_2_machine_options(m); > > + m->alias = NULL; > > + m->is_default = false; > > + compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len); > > + compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len); > > +} > > + > > DEFINE_I440FX_MACHINE(v5_1, "pc-i440fx-5.1", NULL, > > pc_i440fx_5_1_machine_options); > > > > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > > index a3e607a544..0cb9c18cd4 100644 > > --- a/hw/i386/pc_q35.c > > +++ b/hw/i386/pc_q35.c > > @@ -353,7 +353,7 @@ static void pc_q35_machine_options(MachineClass *m) > > m->max_cpus = 288; > > } > > > > -static void pc_q35_5_1_machine_options(MachineClass *m) > > +static void pc_q35_5_2_machine_options(MachineClass *m) > > { > > PCMachineClass *pcmc = PC_MACHINE_CLASS(m); > > pc_q35_machine_options(m); > > @@ -361,6 +361,17 @@ static void pc_q35_5_1_machine_options(MachineClass *m) > > pcmc->default_cpu_version = 1; > > } > > > > +DEFINE_Q35_MACHINE(v5_2, "pc-q35-5.2", NULL, > > + pc_q35_5_2_machine_options); > > + > > +static void pc_q35_5_1_machine_options(MachineClass *m) > > +{ > > + pc_q35_5_2_machine_options(m); > > + m->alias = NULL; > > + compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len); > > + compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len); > > +} > > + > > DEFINE_Q35_MACHINE(v5_1, "pc-q35-5.1", NULL, > > pc_q35_5_1_machine_options); > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 0ae293ec94..1c8d0981b3 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -4579,15 +4579,26 @@ static void > > spapr_machine_latest_class_options(MachineClass *mc) > > } \ > > type_init(spapr_machine_register_##suffix) > > > > +/* > > + * pseries-5.2 > > + */ > > +static void spapr_machine_5_2_class_options(MachineClass *mc) > > +{ > > + /* Defaults for the latest behaviour inherited from the base class */ > > +} > > + > > +DEFINE_SPAPR_MACHINE(5_2, "5.2", true); > > + > > /* > > * pseries-5.1 > > */ > > static void spapr_machine_5_1_class_options(MachineClass *mc) > > { > > - /* Defaults for the latest behaviour inherited from the base class */ > > + spapr_machine_5_2_class_options(mc); > > + compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len); > > } > > > > -DEFINE_SPAPR_MACHINE(5_1, "5.1", true); > > +DEFINE_SPAPR_MACHINE(5_1, "5.1", false); > > > > /* > > * pseries-5.0 > > diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c > > index e72c61d2ea..f4ea6a9545 100644 > > --- a/hw/s390x/s390-virtio-ccw.c > > +++ b/hw/s390x/s390-virtio-ccw.c > > @@ -801,14 +801,26 @@ bool css_migration_enabled(void) > > } > > \ > > type_init(ccw_machine_register_##suffix) > > > > +static void ccw_machine_5_2_instance_options(MachineState *machine) > > +{ > > +} > > + > > +static void ccw_machine_5_2_class_options(MachineClass *mc) > > +{ > > +} > > +DEFINE_CCW_MACHINE(5_2, "5.2", true); > > + > > static void ccw_machine_5_1_instance_options(MachineState *machine) > > { > > + ccw_machine_5_2_instance_options(machine); > > } > > > > static void ccw_machine_5_1_class_options(MachineClass *mc) > > { > > + ccw_machine_5_2_class_options(mc); > > + compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len); > > } > > -DEFINE_CCW_MACHINE(5_1, "5.1", true); > > +DEFINE_CCW_MACHINE(5_1, "5.1", false); > > > > static void ccw_machine_5_0_instance_options(MachineState *machine) > > { > >