Message ID | 20201005165147.526426-3-clg@kaod.org |
---|---|
State | New |
Headers | show |
Series | spapr/xive: Activate StoreEOI in P10 compat guests | expand |
On Mon, 5 Oct 2020 18:51:43 +0200 Cédric Le Goater <clg@kaod.org> wrote: > Signed-off-by: Cédric Le Goater <clg@kaod.org> > --- > hw/ppc/spapr_caps.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c > index 57c62c22e4cc..b0a9d0227db2 100644 > --- a/hw/ppc/spapr_caps.c > +++ b/hw/ppc/spapr_caps.c > @@ -535,6 +535,14 @@ static void cap_storeeoi_apply(SpaprMachineState *spapr, uint8_t val, > return; /* Disabled by default */ > } > > + /* For POWER8 CPUs, setting StoreEOI is useless as XIVE is not used */ > + if (!ppc_type_check_compat(machine->cpu_type, CPU_POWERPC_LOGICAL_3_00, 0, > + spapr->max_compat_pvr)) { It seems that this check is already done during machine init before we get here: spapr_machine_init() spapr_irq_init() spapr_irq_check() So you could maybe just check !spapr->irq->xive I think. And s/on POWER8 CPUs/with XICS/ in the title. > + warn_report("StoreEOI is for the XIVE interrupt mode " > + "(POWER9 and above)"); > + return; > + } > + > /* Check host support when the KVM device is in use */ > if (kvm_irqchip_in_kernel()) { > if (!kvm_storeeoi) {
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index 57c62c22e4cc..b0a9d0227db2 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -535,6 +535,14 @@ static void cap_storeeoi_apply(SpaprMachineState *spapr, uint8_t val, return; /* Disabled by default */ } + /* For POWER8 CPUs, setting StoreEOI is useless as XIVE is not used */ + if (!ppc_type_check_compat(machine->cpu_type, CPU_POWERPC_LOGICAL_3_00, 0, + spapr->max_compat_pvr)) { + warn_report("StoreEOI is for the XIVE interrupt mode " + "(POWER9 and above)"); + return; + } + /* Check host support when the KVM device is in use */ if (kvm_irqchip_in_kernel()) { if (!kvm_storeeoi) {
Signed-off-by: Cédric Le Goater <clg@kaod.org> --- hw/ppc/spapr_caps.c | 8 ++++++++ 1 file changed, 8 insertions(+)