diff mbox series

[v2,2/6] spapr/xive: Add a warning when StoreEOI is activated on POWER8 CPUs

Message ID 20201005165147.526426-3-clg@kaod.org
State New, archived
Headers show
Series spapr/xive: Activate StoreEOI in P10 compat guests | expand

Commit Message

Cédric Le Goater Oct. 5, 2020, 4:51 p.m. UTC
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/ppc/spapr_caps.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Greg Kurz Oct. 6, 2020, 4:52 p.m. UTC | #1
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 mbox series

Patch

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) {