All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] ppc/pnv: fix StoreEOI activation
@ 2019-06-12 16:23 Cédric Le Goater
  2019-06-13  0:00 ` David Gibson
  0 siblings, 1 reply; 2+ messages in thread
From: Cédric Le Goater @ 2019-06-12 16:23 UTC (permalink / raw)
  To: David Gibson; +Cc: qemu-ppc, qemu-devel, Cédric Le Goater

The firmware (skiboot) of the PowerNV machines can configure the XIVE
interrupt controller to activate StoreEOI on the ESB pages of the
interrupts. This feature lets software do an EOI with a store instead
of a load. It is not activated today on P9 for rare race condition
issues but it should be on future processors.

Nevertheless, QEMU has a model for StoreEOI which can be used today by
experimental firmwares. But, the use of object_property_set_int() in
the PnvXive model is incorrect and crashes QEMU. Replace it with a
direct access to the ESB flags of the XiveSource object modeling the
internal sources of the interrupt controller.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/intc/pnv_xive.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c
index bb0877cbdf3b..12c91adcd27e 100644
--- a/hw/intc/pnv_xive.c
+++ b/hw/intc/pnv_xive.c
@@ -780,8 +780,7 @@ static void pnv_xive_ic_reg_write(void *opaque, hwaddr offset,
          * support recently though)
          */
         if (val & (VC_SBC_CONF_CPLX_CIST | VC_SBC_CONF_CIST_BOTH)) {
-            object_property_set_int(OBJECT(&xive->ipi_source),
-                                    XIVE_SRC_STORE_EOI, "flags", &error_fatal);
+            xive->ipi_source.esb_flags |= XIVE_SRC_STORE_EOI;
         }
         break;
 
-- 
2.21.0



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH] ppc/pnv: fix StoreEOI activation
  2019-06-12 16:23 [Qemu-devel] [PATCH] ppc/pnv: fix StoreEOI activation Cédric Le Goater
@ 2019-06-13  0:00 ` David Gibson
  0 siblings, 0 replies; 2+ messages in thread
From: David Gibson @ 2019-06-13  0:00 UTC (permalink / raw)
  To: Cédric Le Goater; +Cc: qemu-ppc, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1732 bytes --]

On Wed, Jun 12, 2019 at 06:23:57PM +0200, Cédric Le Goater wrote:
> The firmware (skiboot) of the PowerNV machines can configure the XIVE
> interrupt controller to activate StoreEOI on the ESB pages of the
> interrupts. This feature lets software do an EOI with a store instead
> of a load. It is not activated today on P9 for rare race condition
> issues but it should be on future processors.
> 
> Nevertheless, QEMU has a model for StoreEOI which can be used today by
> experimental firmwares. But, the use of object_property_set_int() in
> the PnvXive model is incorrect and crashes QEMU. Replace it with a
> direct access to the ESB flags of the XiveSource object modeling the
> internal sources of the interrupt controller.
> 
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

Applied, thanks.

> ---
>  hw/intc/pnv_xive.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/hw/intc/pnv_xive.c b/hw/intc/pnv_xive.c
> index bb0877cbdf3b..12c91adcd27e 100644
> --- a/hw/intc/pnv_xive.c
> +++ b/hw/intc/pnv_xive.c
> @@ -780,8 +780,7 @@ static void pnv_xive_ic_reg_write(void *opaque, hwaddr offset,
>           * support recently though)
>           */
>          if (val & (VC_SBC_CONF_CPLX_CIST | VC_SBC_CONF_CIST_BOTH)) {
> -            object_property_set_int(OBJECT(&xive->ipi_source),
> -                                    XIVE_SRC_STORE_EOI, "flags", &error_fatal);
> +            xive->ipi_source.esb_flags |= XIVE_SRC_STORE_EOI;
>          }
>          break;
>  

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-06-13  3:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-12 16:23 [Qemu-devel] [PATCH] ppc/pnv: fix StoreEOI activation Cédric Le Goater
2019-06-13  0:00 ` David Gibson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.