On Tue, May 22, 2018 at 07:17:28PM +0200, Greg Kurz wrote: > The spapr capability framework was introduced in QEMU 2.12. It allows > to have an explicit control on how host features are exposed to the > guest. This is especially needed to handle migration between hetero- > geneous hosts (eg, POWER8 to POWER9). It is also used to expose fixes/ > workarounds against speculative execution vulnerabilities to guests. > The framework was hence backported to QEMU 2.11.1, especially these > commits: > > 0fac4aa93074 spapr: Add pseries-2.12 machine type > 9070f408f491 spapr: Treat Hardware Transactional Memory (HTM) as an > optional capability > > 0fac4aa93074 has the confusing effect of making pseries-2.12 the default > machine type for QEMU 2.11.1, instead of the expected pseries-2.11. This > patch changes the default machine back to pseries-2.11. > > Unfortunately, 9070f408f491 enforces the HTM capability for pseries-2.11. > This isn't supported by TCG and breaks 'make check'. So this patch also > adds a hack to turn HTM off when using TCG. > > Signed-off-by: Greg Kurz <gr...@kaod.org>
Acked-by: David Gibson <da...@gibson.dropbear.id.au> > --- > hw/ppc/spapr.c | 4 ++-- > hw/ppc/spapr_caps.c | 5 +++++ > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 1a2dd1f597d9..6499a867520f 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -3820,7 +3820,7 @@ static void > spapr_machine_2_12_class_options(MachineClass *mc) > /* Defaults for the latest behaviour inherited from the base class */ > } > > -DEFINE_SPAPR_MACHINE(2_12, "2.12", true); > +DEFINE_SPAPR_MACHINE(2_12, "2.12", false); > > /* > * pseries-2.11 > @@ -3842,7 +3842,7 @@ static void > spapr_machine_2_11_class_options(MachineClass *mc) > SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_11); > } > > -DEFINE_SPAPR_MACHINE(2_11, "2.11", false); > +DEFINE_SPAPR_MACHINE(2_11, "2.11", true); > > /* > * pseries-2.10 > diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c > index 7b229517be38..82043e60e78b 100644 > --- a/hw/ppc/spapr_caps.c > +++ b/hw/ppc/spapr_caps.c > @@ -285,6 +285,11 @@ static sPAPRCapabilities > default_caps_with_cpu(sPAPRMachineState *spapr, > > caps = smc->default_caps; > > + /* HACK for 2.11.2: fix make check */ > + if (tcg_enabled()) { > + caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_OFF; > + } > + > if (!ppc_check_compat(cpu, CPU_POWERPC_LOGICAL_2_07, > 0, spapr->max_compat_pvr)) { > caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_OFF; > -- 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