On Tue, Oct 04, 2016 at 02:55:44PM +0200, Thomas Huth wrote: > A couple of distributors are compiling their distributions > with "-mcpu=power8" for ppc64le these days, so the user sooner > or later runs into a crash there when not explicitely specifying > the "-cpu POWER8" option to QEMU. Due to this reason, the linux-user > target already switched to POWER8 by default a while ago (see commit > de3f1b98410e0d5b406a0df3a48547b559d18602). Since the softmmu target > of course has the same problem, we should switch there to POWER8 > by default for the newer machine types, too. > > Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1357808 > Signed-off-by: Thomas Huth <th...@redhat.com>
Sounds good, one detail.. > --- > Note: This patch should be applied on top of David's ppc-for-2.8 > tree, since the pseries-2.8 machine has just been added there > recently. > > hw/ppc/spapr.c | 11 ++++++++++- > include/hw/ppc/spapr.h | 1 + > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 63b6a0d..799bcff 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -1775,7 +1775,13 @@ static void ppc_spapr_init(MachineState *machine) > > /* init CPUs */ > if (machine->cpu_model == NULL) { > - machine->cpu_model = kvm_enabled() ? "host" : "POWER7"; > + if (kvm_enabled()) { > + machine->cpu_model = "host"; > + } else if (smc->tcg_default_cpu) { > + machine->cpu_model = smc->tcg_default_cpu; > + } else { > + machine->cpu_model = "POWER8"; > + } You can avoid the last if branch if you initialize tcg_default_cpu to POWER8 in spapr_machine_class_init(). > } > > ppc_cpu_parse_features(machine->cpu_model); > @@ -2478,7 +2484,10 @@ static void > spapr_machine_2_7_instance_options(MachineState *machine) > > static void spapr_machine_2_7_class_options(MachineClass *mc) > { > + sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc); > + > spapr_machine_2_8_class_options(mc); > + smc->tcg_default_cpu = "POWER7"; > SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7); > } > > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index 6289d50..39dadaa 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -39,6 +39,7 @@ struct sPAPRMachineClass { > /*< public >*/ > bool dr_lmb_enabled; /* enable dynamic-reconfig/hotplug of LMBs */ > bool use_ohci_by_default; /* use USB-OHCI instead of XHCI */ > + const char *tcg_default_cpu; /* which (TCG) CPU to simulate by default */ > }; > > /** -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature