All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/45] ppc-for-5.0 queue 20200317
@ 2020-03-17 10:03 David Gibson
  2020-03-17 10:03 ` [PULL 01/45] pseries: Update SLOF firmware image David Gibson
                   ` (47 more replies)
  0 siblings, 48 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

The following changes since commit a98135f727595382e200d04c2996e868b7925a01:

  Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200316-pull-request' into staging (2020-03-16 14:55:59 +0000)

are available in the Git repository at:

  git://github.com/dgibson/qemu.git tags/ppc-for-5.0-20200317

for you to fetch changes up to 6961eae79f58385482775dc0a6c3d553f633662d:

  pseries: Update SLOF firmware image (2020-03-17 17:00:22 +1100)

----------------------------------------------------------------
ppc patch queue 2020-03-17

Here's my final pull request for the qemu-5.0 soft freeze.  Sorry this
is just under the wire - I hit some last minute problems that took a
while to fix up and retest.

Highlights are:
 * Numerous fixes for the FWNMI feature
 * A handful of cleanups to the device tree construction code
 * Numerous fixes for the spapr-vscsi device
 * A number of fixes and cleanups for real mode (MMU off) softmmu
   handling
 * Fixes for handling of the PAPR RMA
 * Better handling of hotplug/unplug events during boot
 * Assorted other fixes

----------------------------------------------------------------
Alexey Kardashevskiy (5):
      pseries: Update SLOF firmware image
      ppc/spapr: Move GPRs setup to one place
      pseries: Update SLOF firmware image
      spapr/rtas: Reserve space for RTAS blob and log
      pseries: Update SLOF firmware image

Cédric Le Goater (1):
      spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest

David Gibson (19):
      ppc: Remove stub support for 32-bit hypervisor mode
      ppc: Remove stub of PPC970 HID4 implementation
      target/ppc: Correct handling of real mode accesses with vhyp on hash MMU
      target/ppc: Introduce ppc_hash64_use_vrma() helper
      spapr, ppc: Remove VPM0/RMLS hacks for POWER9
      target/ppc: Remove RMOR register from POWER9 & POWER10
      target/ppc: Use class fields to simplify LPCR masking
      target/ppc: Streamline calculation of RMA limit from LPCR[RMLS]
      target/ppc: Correct RMLS table
      target/ppc: Only calculate RMLS derived RMA limit on demand
      target/ppc: Don't store VRMA SLBE persistently
      spapr: Don't use weird units for MIN_RMA_SLOF
      spapr,ppc: Simplify signature of kvmppc_rma_size()
      spapr: Don't attempt to clamp RMA to VRMA constraint
      spapr: Don't clamp RMA to 16GiB on new machine types
      spapr: Clean up RMA size calculation
      spapr: Move creation of ibm,dynamic-reconfiguration-memory dt node
      spapr: Move creation of ibm,architecture-vec-5 property
      spapr: Rename DT functions to newer naming convention

Greg Kurz (2):
      spapr: Handle pending hot plug/unplug requests at CAS
      ppc: Officially deprecate the CPU "compat" property

Nicholas Piggin (8):
      ppc/spapr: Fix FWNMI machine check failure handling
      ppc/spapr: Change FWNMI names
      ppc/spapr: Add FWNMI System Reset state
      ppc/spapr: Fix FWNMI machine check interrupt delivery
      ppc/spapr: Allow FWNMI on TCG
      target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector
      ppc/spapr: Implement FWNMI System Reset delivery
      ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug

Philippe Mathieu-Daudé (8):
      hw/ppc/pnv: Fix typo in comment
      hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include
      hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array
      hw/scsi/spapr_vscsi: Simplify a bit
      hw/scsi/spapr_vscsi: Introduce req_iu() helper
      hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size
      hw/scsi/spapr_vscsi: Prevent buffer overflow
      hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event

Shivaprasad G Bhat (1):
      spapr: Fix Coverity warning while validating nvdimm options

Vitaly Chikunov (1):
      target/ppc: Fix rlwinm on ppc64

 docs/system/deprecated.rst        |   7 +
 hw/intc/spapr_xive.c              |   4 +-
 hw/ppc/pnv_lpc.c                  |   2 +-
 hw/ppc/spapr.c                    | 980 ++++++++++++++++++++------------------
 hw/ppc/spapr_caps.c               |  19 +-
 hw/ppc/spapr_cpu_core.c           |  16 +-
 hw/ppc/spapr_events.c             |  51 +-
 hw/ppc/spapr_hcall.c              |  15 +-
 hw/ppc/spapr_nvdimm.c             |   7 +-
 hw/ppc/spapr_ovec.c               |   4 +-
 hw/ppc/spapr_rtas.c               |  45 +-
 hw/scsi/spapr_vscsi.c             |  72 +--
 hw/scsi/trace-events              |   1 +
 hw/scsi/viosrp.h                  |   3 +-
 include/hw/ppc/spapr.h            |  34 +-
 include/hw/ppc/spapr_cpu_core.h   |   4 +-
 include/hw/ppc/spapr_ovec.h       |   4 +-
 pc-bios/README                    |   2 +-
 pc-bios/slof.bin                  | Bin 931032 -> 965008 bytes
 roms/SLOF                         |   2 +-
 target/ppc/cpu-qom.h              |   1 +
 target/ppc/cpu.h                  |  28 +-
 target/ppc/excp_helper.c          |  79 ++-
 target/ppc/kvm.c                  |   5 +-
 target/ppc/kvm_ppc.h              |   7 +-
 target/ppc/mmu-hash64.c           | 319 +++++--------
 target/ppc/translate.c            |  20 +-
 target/ppc/translate_init.inc.c   | 116 ++---
 tests/qtest/libqos/libqos-spapr.h |   3 +-
 29 files changed, 930 insertions(+), 920 deletions(-)


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

* [PULL 01/45] pseries: Update SLOF firmware image
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 02/45] spapr: Handle pending hot plug/unplug requests at CAS David Gibson
                   ` (46 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

This adds vTPM support, full-FDT-rebuild-on-CAS fixes and
basic ext4 support.

The full changelog is:

Alexey Kardashevskiy (10):
      disk-label: Prepare for extenting
      disk-label: Support Linux GPT partition type
      ext2: Prepare for extending
      ext2: Rename group-desc-size
      ext2: Read size of group descriptors
      ext2: Read all 64bit of inode number
      ext2/4: Add basic extent tree support
      elf64: Add LE64 ABIv1/2 support for loading images to given address
      fdt: Fix creating new nodes at H_CAS
      version: update to 20200221

Greg Kurz (2):
      fdt: Fix update of "interrupt-controller" node at CAS
      fdt: Delete nodes of devices removed between boot and CAS

Stefan Berger (8):
      slof: Implement SLOF_get_keystroke() and SLOF_reset()
      slof: Make linker script variables accessible
      qemu: Make print_version variable accessible
      tpm: Add TPM CRQ driver implementation
      tpm: Add sha256 implementation
      tcgbios: Add TPM 2.0 support and firmware API
      tcgbios: Implement menu to clear TPM 2 and activate its PCR banks
      tcgbios: Measure the GPT table

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 pc-bios/README   |   2 +-
 pc-bios/slof.bin | Bin 931032 -> 968616 bytes
 roms/SLOF        |   2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/README b/pc-bios/README
index d6d33d237f..a71fb318b3 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -14,7 +14,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/aik/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20191217.
+  built from git tag qemu-slof-20200221.
 
 - sgabios (the Serial Graphics Adapter option ROM) provides a means for
   legacy x86 software to communicate with an attached serial console as
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index 78d8b26cbb88a1913c3b262fd5be29ff89afd554..1c5948561639cfe244ad5d60506050ddb0c9b5b2 100644
GIT binary patch
delta 263704
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
KY<cFP)BhjdSpAs*

delta 242048
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%0Aqcm$Z;*H?$dC)sQl{
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
J?c49Y^)CQ54<-Nr

diff --git a/roms/SLOF b/roms/SLOF
index 9546892a80..7c98b3b613 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 9546892a80d5a4c73deea6719de46372f007f4a6
+Subproject commit 7c98b3b613338a385722a953517349664aa4f532
-- 
2.24.1



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

* [PULL 02/45] spapr: Handle pending hot plug/unplug requests at CAS
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
  2020-03-17 10:03 ` [PULL 01/45] pseries: Update SLOF firmware image David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 03/45] ppc: Officially deprecate the CPU "compat" property David Gibson
                   ` (45 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Greg Kurz <groug@kaod.org>

If a hot plug or unplug request is pending at CAS, we currently trigger
a CAS reboot, which severely increases the guest boot time. This is
because SLOF doesn't handle hot plug events and we had no way to fix
the FDT that gets presented to the guest.

We can do better thanks to recent changes in QEMU and SLOF:

- we now return a full FDT to SLOF during CAS

- SLOF was fixed to correctly detect any device that was either added or
  removed since boot time and to update its internal DT accordingly.

The right solution is to process all pending hot plug/unplug requests
during CAS: convert hot plugged devices to cold plugged devices and
remove the hot unplugged ones, which is exactly what spapr_drc_reset()
does. Also clear all hot plug events that are currently queued since
they're no longer relevant.

Note that SLOF cannot currently populate hot plugged PCI bridges or PHBs
at CAS. Until this limitation is lifted, SLOF will reset the machine when
this scenario occurs : this will allow the FDT to be fully processed when
SLOF is started again (ie. the same effect as the CAS reboot that would
occur anyway without this patch).

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <158257222352.4102917.8984214333937947307.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_events.c  | 13 +++++++++++++
 hw/ppc/spapr_hcall.c   | 11 +++++------
 include/hw/ppc/spapr.h |  1 +
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 8b32b7eea5..2afd1844e4 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -983,6 +983,19 @@ void spapr_clear_pending_events(SpaprMachineState *spapr)
     }
 }
 
+void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr)
+{
+    SpaprEventLogEntry *entry = NULL, *next_entry;
+
+    QTAILQ_FOREACH_SAFE(entry, &spapr->pending_events, next, next_entry) {
+        if (spapr_event_log_entry_type(entry) == RTAS_LOG_TYPE_HOTPLUG) {
+            QTAILQ_REMOVE(&spapr->pending_events, entry, next);
+            g_free(entry->extended_log);
+            g_free(entry);
+        }
+    }
+}
+
 void spapr_events_init(SpaprMachineState *spapr)
 {
     int epow_irq = SPAPR_IRQ_EPOW;
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index 934eb12d27..c2b3286625 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -1640,7 +1640,7 @@ static uint32_t cas_check_pvr(SpaprMachineState *spapr, PowerPCCPU *cpu,
     return best_compat;
 }
 
-static bool spapr_transient_dev_before_cas(void)
+static void spapr_handle_transient_dev_before_cas(SpaprMachineState *spapr)
 {
     Object *drc_container;
     ObjectProperty *prop;
@@ -1658,10 +1658,11 @@ static bool spapr_transient_dev_before_cas(void)
                                                           prop->name, NULL));
 
         if (spapr_drc_transient(drc)) {
-            return true;
+            spapr_drc_reset(drc);
         }
     }
-    return false;
+
+    spapr_clear_pending_hotplug_events(spapr);
 }
 
 static target_ulong h_client_architecture_support(PowerPCCPU *cpu,
@@ -1834,9 +1835,7 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu,
 
     spapr_irq_update_active_intc(spapr);
 
-    if (spapr_transient_dev_before_cas()) {
-        spapr->cas_reboot = true;
-    }
+    spapr_handle_transient_dev_before_cas(spapr);
 
     if (!spapr->cas_reboot) {
         void *fdt;
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 09110961a5..a4216935a1 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -824,6 +824,7 @@ int spapr_hpt_shift_for_ramsize(uint64_t ramsize);
 void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,
                           Error **errp);
 void spapr_clear_pending_events(SpaprMachineState *spapr);
+void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr);
 int spapr_max_server_number(SpaprMachineState *spapr);
 void spapr_store_hpte(PowerPCCPU *cpu, hwaddr ptex,
                       uint64_t pte0, uint64_t pte1);
-- 
2.24.1



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

* [PULL 03/45] ppc: Officially deprecate the CPU "compat" property
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
  2020-03-17 10:03 ` [PULL 01/45] pseries: Update SLOF firmware image David Gibson
  2020-03-17 10:03 ` [PULL 02/45] spapr: Handle pending hot plug/unplug requests at CAS David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 04/45] spapr: Fix Coverity warning while validating nvdimm options David Gibson
                   ` (44 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Greg Kurz <groug@kaod.org>

Server class POWER CPUs have a "compat" property, which was obsoleted
by commit 7843c0d60d and replaced by a "max-cpu-compat" property on the
pseries machine type. A hack was introduced so that passing "compat" to
-cpu would still produce the desired effect, for the sake of backward
compatibility : it strips the "compat" option from the CPU properties
and applies internally it to the pseries machine. The accessors of the
"compat" property were updated to do nothing but warn the user about the
deprecated status when doing something like:

$ qemu-system-ppc64 -global POWER9-family-powerpc64-cpu.compat=power9
qemu-system-ppc64: warning: CPU 'compat' property is deprecated and has no
 effect; use max-cpu-compat machine property instead

This was merged during the QEMU 2.10 timeframe, a few weeks before we
formalized our deprecation process. As a consequence, the "compat"
property fell through the cracks and was never listed in the officialy
deprecated features.

We are now eight QEMU versions later, it is largely time to mention it
in qemu-deprecated.texi. Also, since -global XXX-powerpc64-cpu.compat=
has been emitting warnings since QEMU 2.10 and the usual way of setting
CPU properties is with -cpu, completely remove the "compat" property.
Keep the hack so that -cpu XXX,compat= stays functional some more time,
as required by our deprecation process.

The now empty powerpc_servercpu_properties[] list which was introduced
for "compat" and never had any other use is removed on the way. We can
re-add it in the future if the need for a server class POWER CPU specific
property arises again.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <158274357799.140275.12263135811731647490.stgit@bahia.lan>
[dwg: Convert from .texi to .rst to match upstream change]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 docs/system/deprecated.rst      |  7 ++++++
 target/ppc/translate_init.inc.c | 44 ++-------------------------------
 2 files changed, 9 insertions(+), 42 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 0838338d8f..412b1b166d 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -289,6 +289,13 @@ The RISC-V no MMU cpus have been depcreated. The two CPUs: ``rv32imacu-nommu`` a
 ``rv64imacu-nommu`` should no longer be used. Instead the MMU status can be specified
 via the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs.
 
+``compat`` property of server class POWER CPUs (since 5.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``compat`` property used to set backwards compatibility modes for
+the processor has been deprecated. The ``max-cpu-compat`` property of
+the ``pseries`` machine type should be used instead.
+
 System emulator devices
 -----------------------
 
diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index 53995f62ea..2f7125c51f 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -8492,44 +8492,6 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data)
     pcc->l1_icache_size = 0x10000;
 }
 
-/*
- * The CPU used to have a "compat" property which set the
- * compatibility mode PVR.  However, this was conceptually broken - it
- * only makes sense on the pseries machine type (otherwise the guest
- * owns the PCR and can control the compatibility mode itself).  It's
- * been replaced with the 'max-cpu-compat' property on the pseries
- * machine type.  For backwards compatibility, pseries specially
- * parses the -cpu parameter and converts old compat= parameters into
- * the appropriate machine parameters.  This stub implementation of
- * the parameter catches any uses on explicitly created CPUs.
- */
-static void getset_compat_deprecated(Object *obj, Visitor *v, const char *name,
-                                     void *opaque, Error **errp)
-{
-    QNull *null = NULL;
-
-    if (!qtest_enabled()) {
-        warn_report("CPU 'compat' property is deprecated and has no effect; "
-                    "use max-cpu-compat machine property instead");
-    }
-    visit_type_null(v, name, &null, NULL);
-    qobject_unref(null);
-}
-
-static const PropertyInfo ppc_compat_deprecated_propinfo = {
-    .name = "str",
-    .description = "compatibility mode (deprecated)",
-    .get = getset_compat_deprecated,
-    .set = getset_compat_deprecated,
-};
-static Property powerpc_servercpu_properties[] = {
-    {
-        .name = "compat",
-        .info = &ppc_compat_deprecated_propinfo,
-    },
-    DEFINE_PROP_END_OF_LIST(),
-};
-
 static void init_proc_POWER7(CPUPPCState *env)
 {
     /* Common Registers */
@@ -8611,7 +8573,6 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
 
     dc->fw_name = "PowerPC,POWER7";
     dc->desc = "POWER7";
-    device_class_set_props(dc, powerpc_servercpu_properties);
     pcc->pvr_match = ppc_pvr_match_power7;
     pcc->pcr_mask = PCR_VEC_DIS | PCR_VSX_DIS | PCR_COMPAT_2_05;
     pcc->pcr_supported = PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
@@ -8776,7 +8737,6 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
 
     dc->fw_name = "PowerPC,POWER8";
     dc->desc = "POWER8";
-    device_class_set_props(dc, powerpc_servercpu_properties);
     pcc->pvr_match = ppc_pvr_match_power8;
     pcc->pcr_mask = PCR_TM_DIS | PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
     pcc->pcr_supported = PCR_COMPAT_2_07 | PCR_COMPAT_2_06 | PCR_COMPAT_2_05;
@@ -8988,7 +8948,6 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
 
     dc->fw_name = "PowerPC,POWER9";
     dc->desc = "POWER9";
-    device_class_set_props(dc, powerpc_servercpu_properties);
     pcc->pvr_match = ppc_pvr_match_power9;
     pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07;
     pcc->pcr_supported = PCR_COMPAT_3_00 | PCR_COMPAT_2_07 | PCR_COMPAT_2_06 |
@@ -9198,7 +9157,6 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data)
 
     dc->fw_name = "PowerPC,POWER10";
     dc->desc = "POWER10";
-    device_class_set_props(dc, powerpc_servercpu_properties);
     pcc->pvr_match = ppc_pvr_match_power10;
     pcc->pcr_mask = PCR_COMPAT_2_05 | PCR_COMPAT_2_06 | PCR_COMPAT_2_07 |
                     PCR_COMPAT_3_00;
@@ -10486,6 +10444,8 @@ static void ppc_cpu_parse_featurestr(const char *type, char *features,
         *s = '\0';
         for (i = 0; inpieces[i]; i++) {
             if (g_str_has_prefix(inpieces[i], "compat=")) {
+                warn_report_once("CPU 'compat' property is deprecated; "
+                    "use max-cpu-compat machine property instead");
                 compat_str = inpieces[i];
                 continue;
             }
-- 
2.24.1



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

* [PULL 04/45] spapr: Fix Coverity warning while validating nvdimm options
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (2 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 03/45] ppc: Officially deprecate the CPU "compat" property David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 05/45] hw/ppc/pnv: Fix typo in comment David Gibson
                   ` (43 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, Shivaprasad G Bhat, aik, mdroth, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Shivaprasad G Bhat <sbhat@linux.ibm.com>

Fixes Coverity issue,
      CID 1419883:  Error handling issues  (CHECKED_RETURN)
           Calling "qemu_uuid_parse" without checking return value

nvdimm_set_uuid() already verifies if the user provided uuid is valid or
not. So, need to check for the validity during pre-plug validation again.

As this a false positive in this case, assert if not valid to be safe.
Also, error_abort if QOM accessor encounters error while fetching the uuid
property.

Reported-by: Coverity (CID 1419883)
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Message-Id: <158281096564.89540.4507375445765515529.stgit@lep8c.aus.stglabs.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_nvdimm.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/spapr_nvdimm.c b/hw/ppc/spapr_nvdimm.c
index 74eeb8bb74..25be8082d7 100644
--- a/hw/ppc/spapr_nvdimm.c
+++ b/hw/ppc/spapr_nvdimm.c
@@ -35,6 +35,7 @@ void spapr_nvdimm_validate_opts(NVDIMMDevice *nvdimm, uint64_t size,
 {
     char *uuidstr = NULL;
     QemuUUID uuid;
+    int ret;
 
     if (size % SPAPR_MINIMUM_SCM_BLOCK_SIZE) {
         error_setg(errp, "NVDIMM memory size excluding the label area"
@@ -43,8 +44,10 @@ void spapr_nvdimm_validate_opts(NVDIMMDevice *nvdimm, uint64_t size,
         return;
     }
 
-    uuidstr = object_property_get_str(OBJECT(nvdimm), NVDIMM_UUID_PROP, NULL);
-    qemu_uuid_parse(uuidstr, &uuid);
+    uuidstr = object_property_get_str(OBJECT(nvdimm), NVDIMM_UUID_PROP,
+                                      &error_abort);
+    ret = qemu_uuid_parse(uuidstr, &uuid);
+    g_assert(!ret);
     g_free(uuidstr);
 
     if (qemu_uuid_is_null(&uuid)) {
-- 
2.24.1



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

* [PULL 05/45] hw/ppc/pnv: Fix typo in comment
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (3 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 04/45] spapr: Fix Coverity warning while validating nvdimm options David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 06/45] ppc: Remove stub support for 32-bit hypervisor mode David Gibson
                   ` (42 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200228123303.14540-1-philmd@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/pnv_lpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c
index f150deca34..b5ffa48dac 100644
--- a/hw/ppc/pnv_lpc.c
+++ b/hw/ppc/pnv_lpc.c
@@ -829,7 +829,7 @@ ISABus *pnv_lpc_isa_create(PnvLpcController *lpc, bool use_cpld, Error **errp)
     bool hostboot_mode = !!pnv->fw_load_addr;
 
     /* let isa_bus_new() create its own bridge on SysBus otherwise
-     * devices speficied on the command line won't find the bus and
+     * devices specified on the command line won't find the bus and
      * will fail to create.
      */
     isa_bus = isa_bus_new(NULL, &lpc->isa_mem, &lpc->isa_io, &local_err);
-- 
2.24.1



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

* [PULL 06/45] ppc: Remove stub support for 32-bit hypervisor mode
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (4 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 05/45] hw/ppc/pnv: Fix typo in comment David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 07/45] ppc: Remove stub of PPC970 HID4 implementation David Gibson
                   ` (41 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, Fabiano Rosas, aik, mdroth, qemu-devel, groug, qemu-ppc,
	clg, Philippe Mathieu-Daudé,
	David Gibson

a4f30719a8cd, way back in 2007 noted that "PowerPC hypervisor mode is not
fundamentally available only for PowerPC 64" and added a 32-bit version
of the MSR[HV] bit.

But nothing was ever really done with that; there is no meaningful support
for 32-bit hypervisor mode 13 years later.  Let's stop pretending and just
remove the stubs.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/cpu.h                | 21 +++++++--------------
 target/ppc/translate_init.inc.c |  6 +++---
 2 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index b283042515..8077fdb068 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -24,8 +24,6 @@
 #include "exec/cpu-defs.h"
 #include "cpu-qom.h"
 
-/* #define PPC_EMULATE_32BITS_HYPV */
-
 #define TCG_GUEST_DEFAULT_MO 0
 
 #define TARGET_PAGE_BITS_64K 16
@@ -300,13 +298,12 @@ typedef struct ppc_v3_pate_t {
 #define MSR_SF   63 /* Sixty-four-bit mode                            hflags */
 #define MSR_TAG  62 /* Tag-active mode (POWERx ?)                            */
 #define MSR_ISF  61 /* Sixty-four-bit interrupt mode on 630                  */
-#define MSR_SHV  60 /* hypervisor state                               hflags */
+#define MSR_HV   60 /* hypervisor state                               hflags */
 #define MSR_TS0  34 /* Transactional state, 2 bits (Book3s)                  */
 #define MSR_TS1  33
 #define MSR_TM   32 /* Transactional Memory Available (Book3s)               */
 #define MSR_CM   31 /* Computation mode for BookE                     hflags */
 #define MSR_ICM  30 /* Interrupt computation mode for BookE                  */
-#define MSR_THV  29 /* hypervisor state for 32 bits PowerPC           hflags */
 #define MSR_GS   28 /* guest state for BookE                                 */
 #define MSR_UCLE 26 /* User-mode cache lock enable for BookE                 */
 #define MSR_VR   25 /* altivec available                            x hflags */
@@ -401,10 +398,13 @@ typedef struct ppc_v3_pate_t {
 
 #define msr_sf   ((env->msr >> MSR_SF)   & 1)
 #define msr_isf  ((env->msr >> MSR_ISF)  & 1)
-#define msr_shv  ((env->msr >> MSR_SHV)  & 1)
+#if defined(TARGET_PPC64)
+#define msr_hv   ((env->msr >> MSR_HV)   & 1)
+#else
+#define msr_hv   (0)
+#endif
 #define msr_cm   ((env->msr >> MSR_CM)   & 1)
 #define msr_icm  ((env->msr >> MSR_ICM)  & 1)
-#define msr_thv  ((env->msr >> MSR_THV)  & 1)
 #define msr_gs   ((env->msr >> MSR_GS)   & 1)
 #define msr_ucle ((env->msr >> MSR_UCLE) & 1)
 #define msr_vr   ((env->msr >> MSR_VR)   & 1)
@@ -449,16 +449,9 @@ typedef struct ppc_v3_pate_t {
 
 /* Hypervisor bit is more specific */
 #if defined(TARGET_PPC64)
-#define MSR_HVB (1ULL << MSR_SHV)
-#define msr_hv  msr_shv
-#else
-#if defined(PPC_EMULATE_32BITS_HYPV)
-#define MSR_HVB (1ULL << MSR_THV)
-#define msr_hv  msr_thv
+#define MSR_HVB (1ULL << MSR_HV)
 #else
 #define MSR_HVB (0ULL)
-#define msr_hv  (0)
-#endif
 #endif
 
 /* DSISR */
diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index 2f7125c51f..df3401cf06 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -8764,7 +8764,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
                         PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 |
                         PPC2_TM | PPC2_PM_ISA206;
     pcc->msr_mask = (1ull << MSR_SF) |
-                    (1ull << MSR_SHV) |
+                    (1ull << MSR_HV) |
                     (1ull << MSR_TM) |
                     (1ull << MSR_VR) |
                     (1ull << MSR_VSX) |
@@ -8976,7 +8976,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
                         PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 |
                         PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL;
     pcc->msr_mask = (1ull << MSR_SF) |
-                    (1ull << MSR_SHV) |
+                    (1ull << MSR_HV) |
                     (1ull << MSR_TM) |
                     (1ull << MSR_VR) |
                     (1ull << MSR_VSX) |
@@ -9186,7 +9186,7 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data)
                         PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 |
                         PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL;
     pcc->msr_mask = (1ull << MSR_SF) |
-                    (1ull << MSR_SHV) |
+                    (1ull << MSR_HV) |
                     (1ull << MSR_TM) |
                     (1ull << MSR_VR) |
                     (1ull << MSR_VSX) |
-- 
2.24.1



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

* [PULL 07/45] ppc: Remove stub of PPC970 HID4 implementation
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (5 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 06/45] ppc: Remove stub support for 32-bit hypervisor mode David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 08/45] target/ppc: Correct handling of real mode accesses with vhyp on hash MMU David Gibson
                   ` (40 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

The PowerPC 970 CPU was a cut-down POWER4, which had hypervisor capability.
However, it can be (and often was) strapped into "Apple mode", where the
hypervisor capabilities were disabled (essentially putting it always in
hypervisor mode).

That's actually the only mode of the 970 we support in qemu, and we're
unlikely to change that any time soon.  However, we do have a partial
implementation of the 970's HID4 register which affects things only
relevant for hypervisor mode.

That stub is also really ugly, since it attempts to duplicate the effects
of HID4 by re-encoding it into the LPCR register used in newer CPUs, but
in a really confusing way.

Just get rid of it.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 target/ppc/mmu-hash64.c         | 29 +----------------------------
 target/ppc/translate_init.inc.c | 20 ++++++++------------
 2 files changed, 9 insertions(+), 40 deletions(-)

diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index da8966ccf5..3e0be4d55f 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -1091,33 +1091,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
 
     /* Filter out bits */
     switch (env->mmu_model) {
-    case POWERPC_MMU_64B: /* 970 */
-        if (val & 0x40) {
-            lpcr |= LPCR_LPES0;
-        }
-        if (val & 0x8000000000000000ull) {
-            lpcr |= LPCR_LPES1;
-        }
-        if (val & 0x20) {
-            lpcr |= (0x4ull << LPCR_RMLS_SHIFT);
-        }
-        if (val & 0x4000000000000000ull) {
-            lpcr |= (0x2ull << LPCR_RMLS_SHIFT);
-        }
-        if (val & 0x2000000000000000ull) {
-            lpcr |= (0x1ull << LPCR_RMLS_SHIFT);
-        }
-        env->spr[SPR_RMOR] = ((lpcr >> 41) & 0xffffull) << 26;
-
-        /*
-         * XXX We could also write LPID from HID4 here
-         * but since we don't tag any translation on it
-         * it doesn't actually matter
-         *
-         * XXX For proper emulation of 970 we also need
-         * to dig HRMOR out of HID5
-         */
-        break;
     case POWERPC_MMU_2_03: /* P5p */
         lpcr = val & (LPCR_RMLS | LPCR_ILE |
                       LPCR_LPES0 | LPCR_LPES1 |
@@ -1154,7 +1127,7 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
         }
         break;
     default:
-        ;
+        g_assert_not_reached();
     }
     env->spr[SPR_LPCR] = lpcr;
     ppc_hash64_update_rmls(cpu);
diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index df3401cf06..aecad96db3 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -7895,25 +7895,21 @@ static void spr_write_lpcr(DisasContext *ctx, int sprn, int gprn)
 {
     gen_helper_store_lpcr(cpu_env, cpu_gpr[gprn]);
 }
-
-static void spr_write_970_hid4(DisasContext *ctx, int sprn, int gprn)
-{
-#if defined(TARGET_PPC64)
-    spr_write_generic(ctx, sprn, gprn);
-    gen_helper_store_lpcr(cpu_env, cpu_gpr[gprn]);
-#endif
-}
-
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 static void gen_spr_970_lpar(CPUPPCState *env)
 {
 #if !defined(CONFIG_USER_ONLY)
-    /* Logical partitionning */
-    /* PPC970: HID4 is effectively the LPCR */
+    /*
+     * PPC970: HID4 covers things later controlled by the LPCR and
+     * RMOR in later CPUs, but with a different encoding.  We only
+     * support the 970 in "Apple mode" which has all hypervisor
+     * facilities disabled by strapping, so we can basically just
+     * ignore it
+     */
     spr_register(env, SPR_970_HID4, "HID4",
                  SPR_NOACCESS, SPR_NOACCESS,
-                 &spr_read_generic, &spr_write_970_hid4,
+                 &spr_read_generic, &spr_write_generic,
                  0x00000000);
 #endif
 }
-- 
2.24.1



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

* [PULL 08/45] target/ppc: Correct handling of real mode accesses with vhyp on hash MMU
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (6 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 07/45] ppc: Remove stub of PPC970 HID4 implementation David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 09/45] target/ppc: Introduce ppc_hash64_use_vrma() helper David Gibson
                   ` (39 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

On ppc we have the concept of virtual hypervisor ("vhyp") mode, where we
only model the non-hypervisor-privileged parts of the cpu.  Essentially we
model the hypervisor's behaviour from the point of view of a guest OS, but
we don't model the hypervisor's execution.

In particular, in this mode, qemu's notion of target physical address is
a guest physical address from the vcpu's point of view.  So accesses in
guest real mode don't require translation.  If we were modelling the
hypervisor mode, we'd need to translate the guest physical address into
a host physical address.

Currently, we handle this sloppily: we rely on setting up the virtual LPCR
and RMOR registers so that GPAs are simply HPAs plus an offset, which we
set to zero.  This is already conceptually dubious, since the LPCR and RMOR
registers don't exist in the non-hypervisor portion of the CPU.  It gets
worse with POWER9, where RMOR and LPCR[VPM0] no longer exist at all.

Clean this up by explicitly handling the vhyp case.  While we're there,
remove some unnecessary nesting of if statements that made the logic to
select the correct real mode behaviour a bit less clear than it could be.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 target/ppc/mmu-hash64.c | 60 ++++++++++++++++++++++++-----------------
 1 file changed, 35 insertions(+), 25 deletions(-)

diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index 3e0be4d55f..392f90e0ae 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -789,27 +789,30 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
          */
         raddr = eaddr & 0x0FFFFFFFFFFFFFFFULL;
 
-        /* In HV mode, add HRMOR if top EA bit is clear */
-        if (msr_hv || !env->has_hv_mode) {
+        if (cpu->vhyp) {
+            /*
+             * In virtual hypervisor mode, there's nothing to do:
+             *   EA == GPA == qemu guest address
+             */
+        } else if (msr_hv || !env->has_hv_mode) {
+            /* In HV mode, add HRMOR if top EA bit is clear */
             if (!(eaddr >> 63)) {
                 raddr |= env->spr[SPR_HRMOR];
             }
-        } else {
-            /* Otherwise, check VPM for RMA vs VRMA */
-            if (env->spr[SPR_LPCR] & LPCR_VPM0) {
-                slb = &env->vrma_slb;
-                if (slb->sps) {
-                    goto skip_slb_search;
-                }
-                /* Not much else to do here */
+        } else if (env->spr[SPR_LPCR] & LPCR_VPM0) {
+            /* Emulated VRMA mode */
+            slb = &env->vrma_slb;
+            if (!slb->sps) {
+                /* Invalid VRMA setup, machine check */
                 cs->exception_index = POWERPC_EXCP_MCHECK;
                 env->error_code = 0;
                 return 1;
-            } else if (raddr < env->rmls) {
-                /* RMA. Check bounds in RMLS */
-                raddr |= env->spr[SPR_RMOR];
-            } else {
-                /* The access failed, generate the approriate interrupt */
+            }
+
+            goto skip_slb_search;
+        } else {
+            /* Emulated old-style RMO mode, bounds check against RMLS */
+            if (raddr >= env->rmls) {
                 if (rwx == 2) {
                     ppc_hash64_set_isi(cs, SRR1_PROTFAULT);
                 } else {
@@ -821,6 +824,8 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
                 }
                 return 1;
             }
+
+            raddr |= env->spr[SPR_RMOR];
         }
         tlb_set_page(cs, eaddr & TARGET_PAGE_MASK, raddr & TARGET_PAGE_MASK,
                      PAGE_READ | PAGE_WRITE | PAGE_EXEC, mmu_idx,
@@ -953,22 +958,27 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr)
         /* In real mode the top 4 effective address bits are ignored */
         raddr = addr & 0x0FFFFFFFFFFFFFFFULL;
 
-        /* In HV mode, add HRMOR if top EA bit is clear */
-        if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) {
+        if (cpu->vhyp) {
+            /*
+             * In virtual hypervisor mode, there's nothing to do:
+             *   EA == GPA == qemu guest address
+             */
+            return raddr;
+        } else if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) {
+            /* In HV mode, add HRMOR if top EA bit is clear */
             return raddr | env->spr[SPR_HRMOR];
-        }
-
-        /* Otherwise, check VPM for RMA vs VRMA */
-        if (env->spr[SPR_LPCR] & LPCR_VPM0) {
+        } else if (env->spr[SPR_LPCR] & LPCR_VPM0) {
+            /* Emulated VRMA mode */
             slb = &env->vrma_slb;
             if (!slb->sps) {
                 return -1;
             }
-        } else if (raddr < env->rmls) {
-            /* RMA. Check bounds in RMLS */
-            return raddr | env->spr[SPR_RMOR];
         } else {
-            return -1;
+            /* Emulated old-style RMO mode, bounds check against RMLS */
+            if (raddr >= env->rmls) {
+                return -1;
+            }
+            return raddr | env->spr[SPR_RMOR];
         }
     } else {
         slb = slb_lookup(cpu, addr);
-- 
2.24.1



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

* [PULL 09/45] target/ppc: Introduce ppc_hash64_use_vrma() helper
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (7 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 08/45] target/ppc: Correct handling of real mode accesses with vhyp on hash MMU David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 10/45] spapr, ppc: Remove VPM0/RMLS hacks for POWER9 David Gibson
                   ` (38 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, Fabiano Rosas, aik, mdroth, qemu-devel, groug, qemu-ppc,
	clg, Philippe Mathieu-Daudé,
	David Gibson

When running guests under a hypervisor, the hypervisor obviously needs to
be protected from guest accesses even if those are in what the guest
considers real mode (translation off).  The POWER hardware provides two
ways of doing that: The old way has guest real mode accesses simply offset
and bounds checked into host addresses.  It works, but requires that a
significant chunk of the guest's memory - the RMA - be physically
contiguous in the host, which is pretty inconvenient.  The new way, known
as VRMA, has guest real mode accesses translated in roughly the normal way
but with some special parameters.

In POWER7 and POWER8 the LPCR[VPM0] bit selected between the two modes, but
in POWER9 only VRMA mode is supported and LPCR[VPM0] no longer exists.  We
handle that difference in behaviour in ppc_hash64_set_isi().. but not in
other places that we blindly check LPCR[VPM0].

Correct those instances with a new helper to tell if we should be in VRMA
mode.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/mmu-hash64.c | 43 ++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index 392f90e0ae..e372c42add 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -668,6 +668,21 @@ unsigned ppc_hash64_hpte_page_shift_noslb(PowerPCCPU *cpu,
     return 0;
 }
 
+static bool ppc_hash64_use_vrma(CPUPPCState *env)
+{
+    switch (env->mmu_model) {
+    case POWERPC_MMU_3_00:
+        /*
+         * ISAv3.0 (POWER9) always uses VRMA, the VPM0 field and RMOR
+         * register no longer exist
+         */
+        return true;
+
+    default:
+        return !!(env->spr[SPR_LPCR] & LPCR_VPM0);
+    }
+}
+
 static void ppc_hash64_set_isi(CPUState *cs, uint64_t error_code)
 {
     CPUPPCState *env = &POWERPC_CPU(cs)->env;
@@ -676,15 +691,7 @@ static void ppc_hash64_set_isi(CPUState *cs, uint64_t error_code)
     if (msr_ir) {
         vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM1);
     } else {
-        switch (env->mmu_model) {
-        case POWERPC_MMU_3_00:
-            /* Field deprecated in ISAv3.00 - interrupts always go to hyperv */
-            vpm = true;
-            break;
-        default:
-            vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM0);
-            break;
-        }
+        vpm = ppc_hash64_use_vrma(env);
     }
     if (vpm && !msr_hv) {
         cs->exception_index = POWERPC_EXCP_HISI;
@@ -702,15 +709,7 @@ static void ppc_hash64_set_dsi(CPUState *cs, uint64_t dar, uint64_t dsisr)
     if (msr_dr) {
         vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM1);
     } else {
-        switch (env->mmu_model) {
-        case POWERPC_MMU_3_00:
-            /* Field deprecated in ISAv3.00 - interrupts always go to hyperv */
-            vpm = true;
-            break;
-        default:
-            vpm = !!(env->spr[SPR_LPCR] & LPCR_VPM0);
-            break;
-        }
+        vpm = ppc_hash64_use_vrma(env);
     }
     if (vpm && !msr_hv) {
         cs->exception_index = POWERPC_EXCP_HDSI;
@@ -799,7 +798,7 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
             if (!(eaddr >> 63)) {
                 raddr |= env->spr[SPR_HRMOR];
             }
-        } else if (env->spr[SPR_LPCR] & LPCR_VPM0) {
+        } else if (ppc_hash64_use_vrma(env)) {
             /* Emulated VRMA mode */
             slb = &env->vrma_slb;
             if (!slb->sps) {
@@ -967,7 +966,7 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr)
         } else if ((msr_hv || !env->has_hv_mode) && !(addr >> 63)) {
             /* In HV mode, add HRMOR if top EA bit is clear */
             return raddr | env->spr[SPR_HRMOR];
-        } else if (env->spr[SPR_LPCR] & LPCR_VPM0) {
+        } else if (ppc_hash64_use_vrma(env)) {
             /* Emulated VRMA mode */
             slb = &env->vrma_slb;
             if (!slb->sps) {
@@ -1056,8 +1055,7 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu)
     slb->sps = NULL;
 
     /* Is VRMA enabled ? */
-    lpcr = env->spr[SPR_LPCR];
-    if (!(lpcr & LPCR_VPM0)) {
+    if (!ppc_hash64_use_vrma(env)) {
         return;
     }
 
@@ -1065,6 +1063,7 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu)
      * Make one up. Mostly ignore the ESID which will not be needed
      * for translation
      */
+    lpcr = env->spr[SPR_LPCR];
     vsid = SLB_VSID_VRMA;
     vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT;
     vsid |= (vrmasd << 4) & (SLB_VSID_L | SLB_VSID_LP);
-- 
2.24.1



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

* [PULL 10/45] spapr, ppc: Remove VPM0/RMLS hacks for POWER9
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (8 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 09/45] target/ppc: Introduce ppc_hash64_use_vrma() helper David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 11/45] target/ppc: Remove RMOR register from POWER9 & POWER10 David Gibson
                   ` (37 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

For the "pseries" machine, we use "virtual hypervisor" mode where we
only model the CPU in non-hypervisor privileged mode.  This means that
we need guest physical addresses within the modelled cpu to be treated
as absolute physical addresses.

We used to do that by clearing LPCR[VPM0] and setting LPCR[RMLS] to a high
limit so that the old offset based translation for guest mode applied,
which does what we need.  However, POWER9 has removed support for that
translation mode, which meant we had some ugly hacks to keep it working.

We now explicitly handle this sort of translation for virtual hypervisor
mode, so the hacks aren't necessary.  We don't need to set VPM0 and RMLS
from the machine type code - they're now ignored in vhyp mode.  On the cpu
side we don't need to allow LPCR[RMLS] to be set on POWER9 in vhyp mode -
that was only there to allow the hack on the machine side.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr_cpu_core.c | 10 +---------
 target/ppc/mmu-hash64.c |  8 --------
 2 files changed, 1 insertion(+), 17 deletions(-)

diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index d09125d9af..36ed3a2b66 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -50,22 +50,14 @@ static void spapr_reset_vcpu(PowerPCCPU *cpu)
      * the settings below ensure proper operations with TCG in absence of
      * a real hypervisor.
      *
-     * Clearing VPM0 will also cause us to use RMOR in mmu-hash64.c for
-     * real mode accesses, which thankfully defaults to 0 and isn't
-     * accessible in guest mode.
-     *
      * Disable Power-saving mode Exit Cause exceptions for the CPU, so
      * we don't get spurious wakups before an RTAS start-cpu call.
      * For the same reason, set PSSCR_EC.
      */
-    lpcr &= ~(LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV | pcc->lpcr_pm);
+    lpcr &= ~(LPCR_VPM1 | LPCR_ISL | LPCR_KBV | pcc->lpcr_pm);
     lpcr |= LPCR_LPES0 | LPCR_LPES1;
     env->spr[SPR_PSSCR] |= PSSCR_EC;
 
-    /* Set RMLS to the max (ie, 16G) */
-    lpcr &= ~LPCR_RMLS;
-    lpcr |= 1ull << LPCR_RMLS_SHIFT;
-
     ppc_store_lpcr(cpu, lpcr);
 
     /* Set a full AMOR so guest can use the AMR as it sees fit */
diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index e372c42add..caf47ad6fc 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -1126,14 +1126,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
                       (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE |
                       LPCR_DEE | LPCR_OEE)) | LPCR_MER | LPCR_GTSE | LPCR_TC |
                       LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE);
-        /*
-         * If we have a virtual hypervisor, we need to bring back RMLS. It
-         * doesn't exist on an actual P9 but that's all we know how to
-         * configure with softmmu at the moment
-         */
-        if (cpu->vhyp) {
-            lpcr |= (val & LPCR_RMLS);
-        }
         break;
     default:
         g_assert_not_reached();
-- 
2.24.1



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

* [PULL 11/45] target/ppc: Remove RMOR register from POWER9 & POWER10
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (9 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 10/45] spapr, ppc: Remove VPM0/RMLS hacks for POWER9 David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 12/45] target/ppc: Use class fields to simplify LPCR masking David Gibson
                   ` (36 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

Currently we create the Real Mode Offset Register (RMOR) on all Book3S cpus
from POWER7 onwards.  However the translation mode which the RMOR controls
is no longer supported in POWER9, and so the register has been removed from
the architecture.

Remove it from our model on POWER9 and POWER10.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 target/ppc/translate_init.inc.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index aecad96db3..f7acd3d61d 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -8015,12 +8015,16 @@ static void gen_spr_book3s_ids(CPUPPCState *env)
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_generic,
                  0x00000000);
-    spr_register_hv(env, SPR_RMOR, "RMOR",
+    spr_register_hv(env, SPR_HRMOR, "HRMOR",
                  SPR_NOACCESS, SPR_NOACCESS,
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_generic,
                  0x00000000);
-    spr_register_hv(env, SPR_HRMOR, "HRMOR",
+}
+
+static void gen_spr_rmor(CPUPPCState *env)
+{
+    spr_register_hv(env, SPR_RMOR, "RMOR",
                  SPR_NOACCESS, SPR_NOACCESS,
                  SPR_NOACCESS, SPR_NOACCESS,
                  &spr_read_generic, &spr_write_generic,
@@ -8497,6 +8501,7 @@ static void init_proc_POWER7(CPUPPCState *env)
 
     /* POWER7 Specific Registers */
     gen_spr_book3s_ids(env);
+    gen_spr_rmor(env);
     gen_spr_amr(env);
     gen_spr_book3s_purr(env);
     gen_spr_power5p_common(env);
@@ -8637,6 +8642,7 @@ static void init_proc_POWER8(CPUPPCState *env)
 
     /* POWER8 Specific Registers */
     gen_spr_book3s_ids(env);
+    gen_spr_rmor(env);
     gen_spr_amr(env);
     gen_spr_iamr(env);
     gen_spr_book3s_purr(env);
-- 
2.24.1



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

* [PULL 12/45] target/ppc: Use class fields to simplify LPCR masking
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (10 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 11/45] target/ppc: Remove RMOR register from POWER9 & POWER10 David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 13/45] target/ppc: Streamline calculation of RMA limit from LPCR[RMLS] David Gibson
                   ` (35 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

When we store the Logical Partitioning Control Register (LPCR) we have a
big switch statement to work out which are valid bits for the cpu model
we're emulating.

As well as being ugly, this isn't really conceptually correct, since it is
based on the mmu_model variable, whereas the LPCR isn't (only) about the
MMU, so mmu_model is basically just acting as a proxy for the cpu model.

Handle this in a simpler way, by adding a suitable lpcr_mask to the QOM
class.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/cpu-qom.h            |  1 +
 target/ppc/mmu-hash64.c         | 36 ++-------------------------------
 target/ppc/translate_init.inc.c | 36 ++++++++++++++++++++++++++++-----
 3 files changed, 34 insertions(+), 39 deletions(-)

diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h
index e499575dc8..15d6b54a7d 100644
--- a/target/ppc/cpu-qom.h
+++ b/target/ppc/cpu-qom.h
@@ -177,6 +177,7 @@ typedef struct PowerPCCPUClass {
     uint64_t insns_flags;
     uint64_t insns_flags2;
     uint64_t msr_mask;
+    uint64_t lpcr_mask;         /* Available bits in the LPCR */
     uint64_t lpcr_pm;           /* Power-saving mode Exit Cause Enable bits */
     powerpc_mmu_t   mmu_model;
     powerpc_excp_t  excp_model;
diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index caf47ad6fc..0ef330a614 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -1095,42 +1095,10 @@ static void ppc_hash64_update_vrma(PowerPCCPU *cpu)
 
 void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
 {
+    PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
     CPUPPCState *env = &cpu->env;
-    uint64_t lpcr = 0;
 
-    /* Filter out bits */
-    switch (env->mmu_model) {
-    case POWERPC_MMU_2_03: /* P5p */
-        lpcr = val & (LPCR_RMLS | LPCR_ILE |
-                      LPCR_LPES0 | LPCR_LPES1 |
-                      LPCR_RMI | LPCR_HDICE);
-        break;
-    case POWERPC_MMU_2_06: /* P7 */
-        lpcr = val & (LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_DPFD |
-                      LPCR_VRMASD | LPCR_RMLS | LPCR_ILE |
-                      LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2 |
-                      LPCR_MER | LPCR_TC |
-                      LPCR_LPES0 | LPCR_LPES1 | LPCR_HDICE);
-        break;
-    case POWERPC_MMU_2_07: /* P8 */
-        lpcr = val & (LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV |
-                      LPCR_DPFD | LPCR_VRMASD | LPCR_RMLS | LPCR_ILE |
-                      LPCR_AIL | LPCR_ONL | LPCR_P8_PECE0 | LPCR_P8_PECE1 |
-                      LPCR_P8_PECE2 | LPCR_P8_PECE3 | LPCR_P8_PECE4 |
-                      LPCR_MER | LPCR_TC | LPCR_LPES0 | LPCR_HDICE);
-        break;
-    case POWERPC_MMU_3_00: /* P9 */
-        lpcr = val & (LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD |
-                      (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL |
-                      LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD |
-                      (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE |
-                      LPCR_DEE | LPCR_OEE)) | LPCR_MER | LPCR_GTSE | LPCR_TC |
-                      LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE);
-        break;
-    default:
-        g_assert_not_reached();
-    }
-    env->spr[SPR_LPCR] = lpcr;
+    env->spr[SPR_LPCR] = val & pcc->lpcr_mask;
     ppc_hash64_update_rmls(cpu);
     ppc_hash64_update_vrma(cpu);
 }
diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
index f7acd3d61d..0ae145e18d 100644
--- a/target/ppc/translate_init.inc.c
+++ b/target/ppc/translate_init.inc.c
@@ -8476,6 +8476,8 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data)
                     (1ull << MSR_DR) |
                     (1ull << MSR_PMM) |
                     (1ull << MSR_RI);
+    pcc->lpcr_mask = LPCR_RMLS | LPCR_ILE | LPCR_LPES0 | LPCR_LPES1 |
+        LPCR_RMI | LPCR_HDICE;
     pcc->mmu_model = POWERPC_MMU_2_03;
 #if defined(CONFIG_SOFTMMU)
     pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault;
@@ -8614,6 +8616,12 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
                     (1ull << MSR_PMM) |
                     (1ull << MSR_RI) |
                     (1ull << MSR_LE);
+    pcc->lpcr_mask = LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_DPFD |
+        LPCR_VRMASD | LPCR_RMLS | LPCR_ILE |
+        LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2 |
+        LPCR_MER | LPCR_TC |
+        LPCR_LPES0 | LPCR_LPES1 | LPCR_HDICE;
+    pcc->lpcr_pm = LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2;
     pcc->mmu_model = POWERPC_MMU_2_06;
 #if defined(CONFIG_SOFTMMU)
     pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault;
@@ -8630,7 +8638,6 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data)
     pcc->l1_dcache_size = 0x8000;
     pcc->l1_icache_size = 0x8000;
     pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr;
-    pcc->lpcr_pm = LPCR_P7_PECE0 | LPCR_P7_PECE1 | LPCR_P7_PECE2;
 }
 
 static void init_proc_POWER8(CPUPPCState *env)
@@ -8785,6 +8792,13 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
                     (1ull << MSR_TS0) |
                     (1ull << MSR_TS1) |
                     (1ull << MSR_LE);
+    pcc->lpcr_mask = LPCR_VPM0 | LPCR_VPM1 | LPCR_ISL | LPCR_KBV |
+        LPCR_DPFD | LPCR_VRMASD | LPCR_RMLS | LPCR_ILE |
+        LPCR_AIL | LPCR_ONL | LPCR_P8_PECE0 | LPCR_P8_PECE1 |
+        LPCR_P8_PECE2 | LPCR_P8_PECE3 | LPCR_P8_PECE4 |
+        LPCR_MER | LPCR_TC | LPCR_LPES0 | LPCR_HDICE;
+    pcc->lpcr_pm = LPCR_P8_PECE0 | LPCR_P8_PECE1 | LPCR_P8_PECE2 |
+                   LPCR_P8_PECE3 | LPCR_P8_PECE4;
     pcc->mmu_model = POWERPC_MMU_2_07;
 #if defined(CONFIG_SOFTMMU)
     pcc->handle_mmu_fault = ppc_hash64_handle_mmu_fault;
@@ -8802,8 +8816,6 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data)
     pcc->l1_dcache_size = 0x8000;
     pcc->l1_icache_size = 0x8000;
     pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr;
-    pcc->lpcr_pm = LPCR_P8_PECE0 | LPCR_P8_PECE1 | LPCR_P8_PECE2 |
-                   LPCR_P8_PECE3 | LPCR_P8_PECE4;
 }
 
 #ifdef CONFIG_SOFTMMU
@@ -8995,6 +9007,14 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
                     (1ull << MSR_PMM) |
                     (1ull << MSR_RI) |
                     (1ull << MSR_LE);
+    pcc->lpcr_mask = LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD |
+        (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL |
+        LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD |
+        (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE |
+                             LPCR_DEE | LPCR_OEE))
+        | LPCR_MER | LPCR_GTSE | LPCR_TC |
+        LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE;
+    pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE;
     pcc->mmu_model = POWERPC_MMU_3_00;
 #if defined(CONFIG_SOFTMMU)
     pcc->handle_mmu_fault = ppc64_v3_handle_mmu_fault;
@@ -9014,7 +9034,6 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
     pcc->l1_dcache_size = 0x8000;
     pcc->l1_icache_size = 0x8000;
     pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr;
-    pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE;
 }
 
 #ifdef CONFIG_SOFTMMU
@@ -9205,6 +9224,14 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data)
                     (1ull << MSR_PMM) |
                     (1ull << MSR_RI) |
                     (1ull << MSR_LE);
+    pcc->lpcr_mask = LPCR_VPM1 | LPCR_ISL | LPCR_KBV | LPCR_DPFD |
+        (LPCR_PECE_U_MASK & LPCR_HVEE) | LPCR_ILE | LPCR_AIL |
+        LPCR_UPRT | LPCR_EVIRT | LPCR_ONL | LPCR_HR | LPCR_LD |
+        (LPCR_PECE_L_MASK & (LPCR_PDEE | LPCR_HDEE | LPCR_EEE |
+                             LPCR_DEE | LPCR_OEE))
+        | LPCR_MER | LPCR_GTSE | LPCR_TC |
+        LPCR_HEIC | LPCR_LPES0 | LPCR_HVICE | LPCR_HDICE;
+    pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE;
     pcc->mmu_model = POWERPC_MMU_3_00;
 #if defined(CONFIG_SOFTMMU)
     pcc->handle_mmu_fault = ppc64_v3_handle_mmu_fault;
@@ -9223,7 +9250,6 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data)
     pcc->l1_dcache_size = 0x8000;
     pcc->l1_icache_size = 0x8000;
     pcc->interrupts_big_endian = ppc_cpu_interrupts_big_endian_lpcr;
-    pcc->lpcr_pm = LPCR_PDEE | LPCR_HDEE | LPCR_EEE | LPCR_DEE | LPCR_OEE;
 }
 
 #if !defined(CONFIG_USER_ONLY)
-- 
2.24.1



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

* [PULL 13/45] target/ppc: Streamline calculation of RMA limit from LPCR[RMLS]
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (11 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 12/45] target/ppc: Use class fields to simplify LPCR masking David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 14/45] target/ppc: Correct RMLS table David Gibson
                   ` (34 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

Currently we use a big switch statement in ppc_hash64_update_rmls() to work
out what the right RMA limit is based on the LPCR[RMLS] field.  There's no
formula for this - it's just an arbitrary mapping defined by the existing
CPU implementations - but we can make it a bit more readable by using a
lookup table rather than a switch.  In addition we can use the MiB/GiB
symbols to make it a bit clearer.

While there we add a bit of clarity and rationale to the comment about
what happens if the LPCR[RMLS] doesn't contain a valid value.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/mmu-hash64.c | 63 ++++++++++++++++++-----------------------
 1 file changed, 27 insertions(+), 36 deletions(-)

diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index 0ef330a614..934989e6d9 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -18,6 +18,7 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 #include "qemu/osdep.h"
+#include "qemu/units.h"
 #include "cpu.h"
 #include "exec/exec-all.h"
 #include "exec/helper-proto.h"
@@ -757,6 +758,31 @@ static void ppc_hash64_set_c(PowerPCCPU *cpu, hwaddr ptex, uint64_t pte1)
     stb_phys(CPU(cpu)->as, base + offset, (pte1 & 0xff) | 0x80);
 }
 
+static target_ulong rmls_limit(PowerPCCPU *cpu)
+{
+    CPUPPCState *env = &cpu->env;
+    /*
+     * This is the full 4 bits encoding of POWER8. Previous
+     * CPUs only support a subset of these but the filtering
+     * is done when writing LPCR.
+     *
+     * Unsupported values mean the OS has shot itself in the
+     * foot. Return a 0-sized RMA in this case, which we expect
+     * to trigger an immediate DSI or ISI
+     */
+    static const target_ulong rma_sizes[16] = {
+        [1] = 16 * GiB,
+        [2] = 1 * GiB,
+        [3] = 64 * MiB,
+        [4] = 256 * MiB,
+        [7] = 128 * MiB,
+        [8] = 32 * MiB,
+    };
+    target_ulong rmls = (env->spr[SPR_LPCR] & LPCR_RMLS) >> LPCR_RMLS_SHIFT;
+
+    return rma_sizes[rmls];
+}
+
 int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
                                 int rwx, int mmu_idx)
 {
@@ -1006,41 +1032,6 @@ void ppc_hash64_tlb_flush_hpte(PowerPCCPU *cpu, target_ulong ptex,
     cpu->env.tlb_need_flush = TLB_NEED_GLOBAL_FLUSH | TLB_NEED_LOCAL_FLUSH;
 }
 
-static void ppc_hash64_update_rmls(PowerPCCPU *cpu)
-{
-    CPUPPCState *env = &cpu->env;
-    uint64_t lpcr = env->spr[SPR_LPCR];
-
-    /*
-     * This is the full 4 bits encoding of POWER8. Previous
-     * CPUs only support a subset of these but the filtering
-     * is done when writing LPCR
-     */
-    switch ((lpcr & LPCR_RMLS) >> LPCR_RMLS_SHIFT) {
-    case 0x8: /* 32MB */
-        env->rmls = 0x2000000ull;
-        break;
-    case 0x3: /* 64MB */
-        env->rmls = 0x4000000ull;
-        break;
-    case 0x7: /* 128MB */
-        env->rmls = 0x8000000ull;
-        break;
-    case 0x4: /* 256MB */
-        env->rmls = 0x10000000ull;
-        break;
-    case 0x2: /* 1GB */
-        env->rmls = 0x40000000ull;
-        break;
-    case 0x1: /* 16GB */
-        env->rmls = 0x400000000ull;
-        break;
-    default:
-        /* What to do here ??? */
-        env->rmls = 0;
-    }
-}
-
 static void ppc_hash64_update_vrma(PowerPCCPU *cpu)
 {
     CPUPPCState *env = &cpu->env;
@@ -1099,7 +1090,7 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
     CPUPPCState *env = &cpu->env;
 
     env->spr[SPR_LPCR] = val & pcc->lpcr_mask;
-    ppc_hash64_update_rmls(cpu);
+    env->rmls = rmls_limit(cpu);
     ppc_hash64_update_vrma(cpu);
 }
 
-- 
2.24.1



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

* [PULL 14/45] target/ppc: Correct RMLS table
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (12 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 13/45] target/ppc: Streamline calculation of RMA limit from LPCR[RMLS] David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand David Gibson
                   ` (33 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

The table of RMA limits based on the LPCR[RMLS] field is slightly wrong.
We're missing the RMLS == 0 => 256 GiB RMA option, which is available on
POWER8, so add that.

The comment that goes with the table is much more wrong.  We *don't* filter
invalid RMLS values when writing the LPCR, and there's not really a
sensible way to do so.  Furthermore, while in theory the set of RMLS values
is implementation dependent, it seems in practice the same set has been
available since around POWER4+ up until POWER8, the last model which
supports RMLS at all.  So, correct that as well.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 target/ppc/mmu-hash64.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index 934989e6d9..fcccaabb88 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -762,15 +762,16 @@ static target_ulong rmls_limit(PowerPCCPU *cpu)
 {
     CPUPPCState *env = &cpu->env;
     /*
-     * This is the full 4 bits encoding of POWER8. Previous
-     * CPUs only support a subset of these but the filtering
-     * is done when writing LPCR.
+     * In theory the meanings of RMLS values are implementation
+     * dependent.  In practice, this seems to have been the set from
+     * POWER4+..POWER8, and RMLS is no longer supported in POWER9.
      *
      * Unsupported values mean the OS has shot itself in the
      * foot. Return a 0-sized RMA in this case, which we expect
      * to trigger an immediate DSI or ISI
      */
     static const target_ulong rma_sizes[16] = {
+        [0] = 256 * GiB,
         [1] = 16 * GiB,
         [2] = 1 * GiB,
         [3] = 64 * MiB,
-- 
2.24.1



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

* [PULL 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (13 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 14/45] target/ppc: Correct RMLS table David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 16/45] target/ppc: Don't store VRMA SLBE persistently David Gibson
                   ` (32 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

When the LPCR is written, we update the env->rmls field with the RMA limit
it implies.  Simplify things by just calculating the value directly from
the LPCR value when we need it.

It's possible this is a little slower, but it's unlikely to be significant,
since this is only for real mode accesses in a translation configuration
that's not used very often, and the whole thing is behind the qemu TLB
anyway.  Therefore, keeping the number of state variables down and not
having to worry about making sure it's always in sync seems the better
option.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/cpu.h        | 1 -
 target/ppc/mmu-hash64.c | 9 ++++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 8077fdb068..f9871b1233 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1046,7 +1046,6 @@ struct CPUPPCState {
     uint64_t insns_flags2;
 #if defined(TARGET_PPC64)
     ppc_slb_t vrma_slb;
-    target_ulong rmls;
 #endif
 
     int error_code;
diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index fcccaabb88..4fd7b7ee74 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -837,8 +837,10 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
 
             goto skip_slb_search;
         } else {
+            target_ulong limit = rmls_limit(cpu);
+
             /* Emulated old-style RMO mode, bounds check against RMLS */
-            if (raddr >= env->rmls) {
+            if (raddr >= limit) {
                 if (rwx == 2) {
                     ppc_hash64_set_isi(cs, SRR1_PROTFAULT);
                 } else {
@@ -1000,8 +1002,10 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr)
                 return -1;
             }
         } else {
+            target_ulong limit = rmls_limit(cpu);
+
             /* Emulated old-style RMO mode, bounds check against RMLS */
-            if (raddr >= env->rmls) {
+            if (raddr >= limit) {
                 return -1;
             }
             return raddr | env->spr[SPR_RMOR];
@@ -1091,7 +1095,6 @@ void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
     CPUPPCState *env = &cpu->env;
 
     env->spr[SPR_LPCR] = val & pcc->lpcr_mask;
-    env->rmls = rmls_limit(cpu);
     ppc_hash64_update_vrma(cpu);
 }
 
-- 
2.24.1



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

* [PULL 16/45] target/ppc: Don't store VRMA SLBE persistently
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (14 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 17/45] spapr: Don't use weird units for MIN_RMA_SLOF David Gibson
                   ` (31 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

Currently, we construct the SLBE used for VRMA translations when the LPCR
is written (which controls some bits in the SLBE), then use it later for
translations.

This is a bit complex and confusing - simplify it by simply constructing
the SLBE directly from the LPCR when we need it.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 target/ppc/cpu.h        |  3 --
 target/ppc/mmu-hash64.c | 92 ++++++++++++++++-------------------------
 2 files changed, 35 insertions(+), 60 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index f9871b1233..5a55fb02bd 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1044,9 +1044,6 @@ struct CPUPPCState {
     uint32_t flags;
     uint64_t insns_flags;
     uint64_t insns_flags2;
-#if defined(TARGET_PPC64)
-    ppc_slb_t vrma_slb;
-#endif
 
     int error_code;
     uint32_t pending_interrupts;
diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
index 4fd7b7ee74..34f6009b1e 100644
--- a/target/ppc/mmu-hash64.c
+++ b/target/ppc/mmu-hash64.c
@@ -784,11 +784,41 @@ static target_ulong rmls_limit(PowerPCCPU *cpu)
     return rma_sizes[rmls];
 }
 
+static int build_vrma_slbe(PowerPCCPU *cpu, ppc_slb_t *slb)
+{
+    CPUPPCState *env = &cpu->env;
+    target_ulong lpcr = env->spr[SPR_LPCR];
+    uint32_t vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT;
+    target_ulong vsid = SLB_VSID_VRMA | ((vrmasd << 4) & SLB_VSID_LLP_MASK);
+    int i;
+
+    for (i = 0; i < PPC_PAGE_SIZES_MAX_SZ; i++) {
+        const PPCHash64SegmentPageSizes *sps = &cpu->hash64_opts->sps[i];
+
+        if (!sps->page_shift) {
+            break;
+        }
+
+        if ((vsid & SLB_VSID_LLP_MASK) == sps->slb_enc) {
+            slb->esid = SLB_ESID_V;
+            slb->vsid = vsid;
+            slb->sps = sps;
+            return 0;
+        }
+    }
+
+    error_report("Bad page size encoding in LPCR[VRMASD]; LPCR=0x"
+                 TARGET_FMT_lx"\n", lpcr);
+
+    return -1;
+}
+
 int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
                                 int rwx, int mmu_idx)
 {
     CPUState *cs = CPU(cpu);
     CPUPPCState *env = &cpu->env;
+    ppc_slb_t vrma_slbe;
     ppc_slb_t *slb;
     unsigned apshift;
     hwaddr ptex;
@@ -827,8 +857,8 @@ int ppc_hash64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr,
             }
         } else if (ppc_hash64_use_vrma(env)) {
             /* Emulated VRMA mode */
-            slb = &env->vrma_slb;
-            if (!slb->sps) {
+            slb = &vrma_slbe;
+            if (build_vrma_slbe(cpu, slb) != 0) {
                 /* Invalid VRMA setup, machine check */
                 cs->exception_index = POWERPC_EXCP_MCHECK;
                 env->error_code = 0;
@@ -976,6 +1006,7 @@ skip_slb_search:
 hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr)
 {
     CPUPPCState *env = &cpu->env;
+    ppc_slb_t vrma_slbe;
     ppc_slb_t *slb;
     hwaddr ptex, raddr;
     ppc_hash_pte64_t pte;
@@ -997,8 +1028,8 @@ hwaddr ppc_hash64_get_phys_page_debug(PowerPCCPU *cpu, target_ulong addr)
             return raddr | env->spr[SPR_HRMOR];
         } else if (ppc_hash64_use_vrma(env)) {
             /* Emulated VRMA mode */
-            slb = &env->vrma_slb;
-            if (!slb->sps) {
+            slb = &vrma_slbe;
+            if (build_vrma_slbe(cpu, slb) != 0) {
                 return -1;
             }
         } else {
@@ -1037,65 +1068,12 @@ void ppc_hash64_tlb_flush_hpte(PowerPCCPU *cpu, target_ulong ptex,
     cpu->env.tlb_need_flush = TLB_NEED_GLOBAL_FLUSH | TLB_NEED_LOCAL_FLUSH;
 }
 
-static void ppc_hash64_update_vrma(PowerPCCPU *cpu)
-{
-    CPUPPCState *env = &cpu->env;
-    const PPCHash64SegmentPageSizes *sps = NULL;
-    target_ulong esid, vsid, lpcr;
-    ppc_slb_t *slb = &env->vrma_slb;
-    uint32_t vrmasd;
-    int i;
-
-    /* First clear it */
-    slb->esid = slb->vsid = 0;
-    slb->sps = NULL;
-
-    /* Is VRMA enabled ? */
-    if (!ppc_hash64_use_vrma(env)) {
-        return;
-    }
-
-    /*
-     * Make one up. Mostly ignore the ESID which will not be needed
-     * for translation
-     */
-    lpcr = env->spr[SPR_LPCR];
-    vsid = SLB_VSID_VRMA;
-    vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT;
-    vsid |= (vrmasd << 4) & (SLB_VSID_L | SLB_VSID_LP);
-    esid = SLB_ESID_V;
-
-    for (i = 0; i < PPC_PAGE_SIZES_MAX_SZ; i++) {
-        const PPCHash64SegmentPageSizes *sps1 = &cpu->hash64_opts->sps[i];
-
-        if (!sps1->page_shift) {
-            break;
-        }
-
-        if ((vsid & SLB_VSID_LLP_MASK) == sps1->slb_enc) {
-            sps = sps1;
-            break;
-        }
-    }
-
-    if (!sps) {
-        error_report("Bad page size encoding esid 0x"TARGET_FMT_lx
-                     " vsid 0x"TARGET_FMT_lx, esid, vsid);
-        return;
-    }
-
-    slb->vsid = vsid;
-    slb->esid = esid;
-    slb->sps = sps;
-}
-
 void ppc_store_lpcr(PowerPCCPU *cpu, target_ulong val)
 {
     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
     CPUPPCState *env = &cpu->env;
 
     env->spr[SPR_LPCR] = val & pcc->lpcr_mask;
-    ppc_hash64_update_vrma(cpu);
 }
 
 void helper_store_lpcr(CPUPPCState *env, target_ulong val)
-- 
2.24.1



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

* [PULL 17/45] spapr: Don't use weird units for MIN_RMA_SLOF
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (15 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 16/45] target/ppc: Don't store VRMA SLBE persistently David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 18/45] spapr,ppc: Simplify signature of kvmppc_rma_size() David Gibson
                   ` (30 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

MIN_RMA_SLOF records the minimum about of RMA that the SLOF firmware
requires.  It lets us give a meaningful error if the RMA ends up too small,
rather than just letting SLOF crash.

It's currently stored as a number of megabytes, which is strange for global
constants.  Move that megabyte scaling into the definition of the constant
like most other things use.

Change from M to MiB in the associated message while we're at it.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/ppc/spapr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index cc10798be4..510494ad87 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -103,7 +103,7 @@
 #define FW_OVERHEAD             0x2800000
 #define KERNEL_LOAD_ADDR        FW_MAX_SIZE
 
-#define MIN_RMA_SLOF            128UL
+#define MIN_RMA_SLOF            (128 * MiB)
 
 #define PHANDLE_INTC            0x00001111
 
@@ -2956,10 +2956,10 @@ static void spapr_machine_init(MachineState *machine)
         }
     }
 
-    if (spapr->rma_size < (MIN_RMA_SLOF * MiB)) {
+    if (spapr->rma_size < MIN_RMA_SLOF) {
         error_report(
-            "pSeries SLOF firmware requires >= %ldM guest RMA (Real Mode Area memory)",
-            MIN_RMA_SLOF);
+            "pSeries SLOF firmware requires >= %ldMiB guest RMA (Real Mode Area memory)",
+            MIN_RMA_SLOF / MiB);
         exit(1);
     }
 
-- 
2.24.1



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

* [PULL 18/45] spapr,ppc: Simplify signature of kvmppc_rma_size()
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (16 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 17/45] spapr: Don't use weird units for MIN_RMA_SLOF David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 19/45] spapr: Don't attempt to clamp RMA to VRMA constraint David Gibson
                   ` (29 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, Cedric Le Goater,
	qemu-ppc, clg, Philippe Mathieu-Daudé,
	David Gibson

This function calculates the maximum size of the RMA as implied by the
host's page size of structure of the VRMA (there are a number of other
constraints on the RMA size which will supersede this one in many
circumstances).

The current interface takes the current RMA size estimate, and clamps it
to the VRMA derived size.  The only current caller passes in an arguably
wrong value (it will match the current RMA estimate in some but not all
cases).

We want to fix that, but for now just keep concerns separated by having the
KVM helper function just return the VRMA derived limit, and let the caller
combine it with other constraints.  We call the new function
kvmppc_vrma_limit() to more clearly indicate its limited responsibility.

The helper should only ever be called in the KVM enabled case, so replace
its !CONFIG_KVM stub with an assert() rather than a dummy value.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cedric Le Goater <clg@fr.ibm.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/ppc/spapr.c       | 5 +++--
 target/ppc/kvm.c     | 5 ++---
 target/ppc/kvm_ppc.h | 7 +++----
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 510494ad87..18bf4bc3de 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1586,8 +1586,9 @@ void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr)
     spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal);
 
     if (spapr->vrma_adjust) {
-        spapr->rma_size = kvmppc_rma_size(spapr_node0_size(MACHINE(spapr)),
-                                          spapr->htab_shift);
+        hwaddr vrma_limit = kvmppc_vrma_limit(spapr->htab_shift);
+
+        spapr->rma_size = MIN(spapr_node0_size(MACHINE(spapr)), vrma_limit);
     }
 }
 
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 7f44b1aa1a..597f72be1b 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2113,7 +2113,7 @@ void kvmppc_error_append_smt_possible_hint(Error *const *errp)
 
 
 #ifdef TARGET_PPC64
-uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift)
+uint64_t kvmppc_vrma_limit(unsigned int hash_shift)
 {
     struct kvm_ppc_smmu_info info;
     long rampagesize, best_page_shift;
@@ -2140,8 +2140,7 @@ uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift)
         }
     }
 
-    return MIN(current_size,
-               1ULL << (best_page_shift + hash_shift - 7));
+    return 1ULL << (best_page_shift + hash_shift - 7);
 }
 #endif
 
diff --git a/target/ppc/kvm_ppc.h b/target/ppc/kvm_ppc.h
index 9e4f2357cc..332fa0aa1c 100644
--- a/target/ppc/kvm_ppc.h
+++ b/target/ppc/kvm_ppc.h
@@ -47,7 +47,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t page_shift,
                               int *pfd, bool need_vfio);
 int kvmppc_remove_spapr_tce(void *table, int pfd, uint32_t window_size);
 int kvmppc_reset_htab(int shift_hint);
-uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift);
+uint64_t kvmppc_vrma_limit(unsigned int hash_shift);
 bool kvmppc_has_cap_spapr_vfio(void);
 #endif /* !CONFIG_USER_ONLY */
 bool kvmppc_has_cap_epr(void);
@@ -255,10 +255,9 @@ static inline int kvmppc_reset_htab(int shift_hint)
     return 0;
 }
 
-static inline uint64_t kvmppc_rma_size(uint64_t current_size,
-                                       unsigned int hash_shift)
+static inline uint64_t kvmppc_vrma_limit(unsigned int hash_shift)
 {
-    return ram_size;
+    g_assert_not_reached();
 }
 
 static inline bool kvmppc_hpt_needs_host_contiguous_pages(void)
-- 
2.24.1



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

* [PULL 19/45] spapr: Don't attempt to clamp RMA to VRMA constraint
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (17 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 18/45] spapr,ppc: Simplify signature of kvmppc_rma_size() David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 20/45] spapr: Don't clamp RMA to 16GiB on new machine types David Gibson
                   ` (28 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

The Real Mode Area (RMA) is the part of memory which a guest can access
when in real (MMU off) mode.  Of course, for a guest under KVM, the MMU
isn't really turned off, it's just in a special translation mode - Virtual
Real Mode Area (VRMA) - which looks like real mode in guest mode.

The mechanics of how this works when using the hash MMU (HPT) put a
constraint on the size of the RMA, which depends on the size of the
HPT.  So, the latter part of spapr_setup_hpt_and_vrma() clamps the RMA
we advertise to the guest based on this VRMA limit.

There are several things wrong with this:
 1) spapr_setup_hpt_and_vrma() doesn't actually clamp, it takes the minimum
    of Node 0 memory size and the VRMA limit.  That will *often* work the
    same as clamping, but there can be other constraints on RMA size which
    supersede Node 0 memory size.  We have real bugs caused by this
    (currently worked around in the guest kernel)
 2) Some callers of spapr_setup_hpt_and_vrma() are in a situation where
    we're past the point that we can actually advertise an RMA limit to the
    guest
 3) But most fundamentally, the VRMA limit depends on host configuration
    (page size) which shouldn't be visible to the guest, but this partially
    exposes it.  This can cause problems with migration in certain edge
    cases, although we will mostly get away with it.

In practice, this clamping is almost never applied anyway.  With 64kiB
pages and the normal rules for sizing of the HPT, the theoretical VRMA
limit will be 4x(guest memory size) and so never hit.  It will hit with
4kiB pages, where it will be (guest memory size)/4.  However all mainstream
distro kernels for POWER have used a 64kiB page size for at least 10 years.

So, simply replace this logic with a check that the RMA we've calculated
based only on guest visible configuration will fit within the host implied
VRMA limit.  This can break if running HPT guests on a host kernel with
4kiB page size.  As noted that's very rare.  There also exist several
possible workarounds:
  * Change the host kernel to use 64kiB pages
  * Use radix MMU (RPT) guests instead of HPT
  * Use 64kiB hugepages on the host to back guest memory
  * Increase the guest memory size so that the RMA hits one of the fixed
    limits before the RMA limit.  This is relatively easy on POWER8 which
    has a 16GiB limit, harder on POWER9 which has a 1TiB limit.
  * Use a guest NUMA configuration which artificially constrains the RMA
    within the VRMA limit (the RMA must always fit within Node 0).

Previously, on KVM, we also temporarily reduced the rma_size to 256M so
that the we'd load the kernel and initrd safely, regardless of the VRMA
limit.  This was a) confusing, b) could significantly limit the size of
images we could load and c) introduced a behavioural difference between
KVM and TCG.  So we remove that as well.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr.c         | 28 ++++++++++------------------
 hw/ppc/spapr_hcall.c   |  4 ++--
 include/hw/ppc/spapr.h |  3 +--
 3 files changed, 13 insertions(+), 22 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 18bf4bc3de..ef7667455c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1569,7 +1569,7 @@ void spapr_reallocate_hpt(SpaprMachineState *spapr, int shift,
     spapr_set_all_lpcrs(0, LPCR_HR | LPCR_UPRT);
 }
 
-void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr)
+void spapr_setup_hpt(SpaprMachineState *spapr)
 {
     int hpt_shift;
 
@@ -1585,10 +1585,16 @@ void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr)
     }
     spapr_reallocate_hpt(spapr, hpt_shift, &error_fatal);
 
-    if (spapr->vrma_adjust) {
+    if (kvm_enabled()) {
         hwaddr vrma_limit = kvmppc_vrma_limit(spapr->htab_shift);
 
-        spapr->rma_size = MIN(spapr_node0_size(MACHINE(spapr)), vrma_limit);
+        /* Check our RMA fits in the possible VRMA */
+        if (vrma_limit < spapr->rma_size) {
+            error_report("Unable to create %" HWADDR_PRIu
+                         "MiB RMA (VRMA only allows %" HWADDR_PRIu "MiB",
+                         spapr->rma_size / MiB, vrma_limit / MiB);
+            exit(EXIT_FAILURE);
+        }
     }
 }
 
@@ -1628,7 +1634,7 @@ static void spapr_machine_reset(MachineState *machine)
         spapr->patb_entry = PATE1_GR;
         spapr_set_all_lpcrs(LPCR_HR | LPCR_UPRT, LPCR_HR | LPCR_UPRT);
     } else {
-        spapr_setup_hpt_and_vrma(spapr);
+        spapr_setup_hpt(spapr);
     }
 
     qemu_devices_reset();
@@ -2695,20 +2701,6 @@ static void spapr_machine_init(MachineState *machine)
 
     spapr->rma_size = node0_size;
 
-    /* With KVM, we don't actually know whether KVM supports an
-     * unbounded RMA (PR KVM) or is limited by the hash table size
-     * (HV KVM using VRMA), so we always assume the latter
-     *
-     * In that case, we also limit the initial allocations for RTAS
-     * etc... to 256M since we have no way to know what the VRMA size
-     * is going to be as it depends on the size of the hash table
-     * which isn't determined yet.
-     */
-    if (kvm_enabled()) {
-        spapr->vrma_adjust = 1;
-        spapr->rma_size = MIN(spapr->rma_size, 0x10000000);
-    }
-
     /* Actually we don't support unbounded RMA anymore since we added
      * proper emulation of HV mode. The max we can get is 16G which
      * also happens to be what we configure for PAPR mode so make sure
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index c2b3286625..40c86e91eb 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -1458,7 +1458,7 @@ static void spapr_check_setup_free_hpt(SpaprMachineState *spapr,
         spapr_free_hpt(spapr);
     } else if (!(patbe_new & PATE1_GR)) {
         /* RADIX->HASH || NOTHING->HASH : Allocate HPT */
-        spapr_setup_hpt_and_vrma(spapr);
+        spapr_setup_hpt(spapr);
     }
     return;
 }
@@ -1845,7 +1845,7 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu,
          * (because the guest isn't going to use radix) then set it up here. */
         if ((spapr->patb_entry & PATE1_GR) && !guest_radix) {
             /* legacy hash or new hash: */
-            spapr_setup_hpt_and_vrma(spapr);
+            spapr_setup_hpt(spapr);
         }
 
         if (fdt_bufsize < sizeof(hdr)) {
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index a4216935a1..90dbc55931 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -156,7 +156,6 @@ struct SpaprMachineState {
     SpaprPendingHpt *pending_hpt; /* in-progress resize */
 
     hwaddr rma_size;
-    int vrma_adjust;
     uint32_t fdt_size;
     uint32_t fdt_initial_size;
     void *fdt_blob;
@@ -795,7 +794,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space);
 void spapr_events_init(SpaprMachineState *sm);
 void spapr_dt_events(SpaprMachineState *sm, void *fdt);
 void close_htab_fd(SpaprMachineState *spapr);
-void spapr_setup_hpt_and_vrma(SpaprMachineState *spapr);
+void spapr_setup_hpt(SpaprMachineState *spapr);
 void spapr_free_hpt(SpaprMachineState *spapr);
 SpaprTceTable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn);
 void spapr_tce_table_enable(SpaprTceTable *tcet,
-- 
2.24.1



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

* [PULL 20/45] spapr: Don't clamp RMA to 16GiB on new machine types
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (18 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 19/45] spapr: Don't attempt to clamp RMA to VRMA constraint David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:03 ` [PULL 21/45] spapr: Clean up RMA size calculation David Gibson
                   ` (27 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

In spapr_machine_init() we clamp the size of the RMA to 16GiB and the
comment saying why doesn't make a whole lot of sense.  In fact, this was
done because the real mode handling code elsewhere limited the RMA in TCG
mode to the maximum value configurable in LPCR[RMLS], 16GiB.

But,
 * Actually LPCR[RMLS] has been able to encode a 256GiB size for a very
   long time, we just didn't implement it properly in the softmmu
 * LPCR[RMLS] shouldn't really be relevant anyway, it only was because we
   used to abuse the RMOR based translation mode in order to handle the
   fact that we're not modelling the hypervisor parts of the cpu

We've now removed those limitations in the modelling so the 16GiB clamp no
longer serves a function.  However, we can't just remove the limit
universally: that would break migration to earlier qemu versions, where
the 16GiB RMLS limit still applies, no matter how bad the reasons for it
are.

So, we replace the 16GiB clamp, with a clamp to a limit defined in the
machine type class.  We set it to 16 GiB for machine types 4.2 and earlier,
but set it to 0 meaning unlimited for the new 5.0 machine type.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/ppc/spapr.c         | 13 ++++++++-----
 include/hw/ppc/spapr.h |  1 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index ef7667455c..95bda4a615 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2701,12 +2701,14 @@ static void spapr_machine_init(MachineState *machine)
 
     spapr->rma_size = node0_size;
 
-    /* Actually we don't support unbounded RMA anymore since we added
-     * proper emulation of HV mode. The max we can get is 16G which
-     * also happens to be what we configure for PAPR mode so make sure
-     * we don't do anything bigger than that
+    /*
+     * Clamp the RMA size based on machine type.  This is for
+     * migration compatibility with older qemu versions, which limited
+     * the RMA size for complicated and mostly bad reasons.
      */
-    spapr->rma_size = MIN(spapr->rma_size, 0x400000000ull);
+    if (smc->rma_limit) {
+        spapr->rma_size = MIN(spapr->rma_size, smc->rma_limit);
+    }
 
     if (spapr->rma_size > node0_size) {
         error_report("Numa node 0 has to span the RMA (%#08"HWADDR_PRIx")",
@@ -4598,6 +4600,7 @@ static void spapr_machine_4_2_class_options(MachineClass *mc)
     compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len);
     smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_OFF;
     smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_OFF;
+    smc->rma_limit = 16 * GiB;
     mc->nvdimm_supported = false;
 }
 
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 90dbc55931..2015e37ac5 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -126,6 +126,7 @@ struct SpaprMachineClass {
     bool pre_4_1_migration; /* don't migrate hpt-max-page-size */
     bool linux_pci_probe;
     bool smp_threads_vsmt; /* set VSMT to smp_threads by default */
+    hwaddr rma_limit;          /* clamp the RMA to this size */
 
     void (*phb_placement)(SpaprMachineState *spapr, uint32_t index,
                           uint64_t *buid, hwaddr *pio, 
-- 
2.24.1



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

* [PULL 21/45] spapr: Clean up RMA size calculation
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (19 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 20/45] spapr: Don't clamp RMA to 16GiB on new machine types David Gibson
@ 2020-03-17 10:03 ` David Gibson
  2020-03-17 10:04 ` [PULL 22/45] hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include David Gibson
                   ` (26 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:03 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Philippe Mathieu-Daudé,
	David Gibson

Move the calculation of the Real Mode Area (RMA) size into a helper
function.  While we're there clean it up and correct it in a few ways:
  * Add comments making it clearer where the various constraints come from
  * Remove a pointless check that the RMA fits within Node 0 (we've just
    clamped it so that it does)

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/ppc/spapr.c | 61 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 37 insertions(+), 24 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 95bda4a615..1950fc303e 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2648,6 +2648,42 @@ static PCIHostState *spapr_create_default_phb(void)
     return PCI_HOST_BRIDGE(dev);
 }
 
+static hwaddr spapr_rma_size(SpaprMachineState *spapr, Error **errp)
+{
+    MachineState *machine = MACHINE(spapr);
+    SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr);
+    hwaddr rma_size = machine->ram_size;
+    hwaddr node0_size = spapr_node0_size(machine);
+
+    /* RMA has to fit in the first NUMA node */
+    rma_size = MIN(rma_size, node0_size);
+
+    /*
+     * VRMA access is via a special 1TiB SLB mapping, so the RMA can
+     * never exceed that
+     */
+    rma_size = MIN(rma_size, 1 * TiB);
+
+    /*
+     * Clamp the RMA size based on machine type.  This is for
+     * migration compatibility with older qemu versions, which limited
+     * the RMA size for complicated and mostly bad reasons.
+     */
+    if (smc->rma_limit) {
+        rma_size = MIN(rma_size, smc->rma_limit);
+    }
+
+    if (rma_size < MIN_RMA_SLOF) {
+        error_setg(errp,
+                   "pSeries SLOF firmware requires >= %" HWADDR_PRIx
+                   "ldMiB guest RMA (Real Mode Area memory)",
+                   MIN_RMA_SLOF / MiB);
+        return 0;
+    }
+
+    return rma_size;
+}
+
 /* pSeries LPAR / sPAPR hardware init */
 static void spapr_machine_init(MachineState *machine)
 {
@@ -2659,7 +2695,6 @@ static void spapr_machine_init(MachineState *machine)
     PCIHostState *phb;
     int i;
     MemoryRegion *sysmem = get_system_memory();
-    hwaddr node0_size = spapr_node0_size(machine);
     long load_limit, fw_size;
     char *filename;
     Error *resize_hpt_err = NULL;
@@ -2699,22 +2734,7 @@ static void spapr_machine_init(MachineState *machine)
         exit(1);
     }
 
-    spapr->rma_size = node0_size;
-
-    /*
-     * Clamp the RMA size based on machine type.  This is for
-     * migration compatibility with older qemu versions, which limited
-     * the RMA size for complicated and mostly bad reasons.
-     */
-    if (smc->rma_limit) {
-        spapr->rma_size = MIN(spapr->rma_size, smc->rma_limit);
-    }
-
-    if (spapr->rma_size > node0_size) {
-        error_report("Numa node 0 has to span the RMA (%#08"HWADDR_PRIx")",
-                     spapr->rma_size);
-        exit(1);
-    }
+    spapr->rma_size = spapr_rma_size(spapr, &error_fatal);
 
     /* Setup a load limit for the ramdisk leaving room for SLOF and FDT */
     load_limit = MIN(spapr->rma_size, RTAS_MAX_ADDR) - FW_OVERHEAD;
@@ -2951,13 +2971,6 @@ static void spapr_machine_init(MachineState *machine)
         }
     }
 
-    if (spapr->rma_size < MIN_RMA_SLOF) {
-        error_report(
-            "pSeries SLOF firmware requires >= %ldMiB guest RMA (Real Mode Area memory)",
-            MIN_RMA_SLOF / MiB);
-        exit(1);
-    }
-
     if (kernel_filename) {
         uint64_t lowaddr = 0;
 
-- 
2.24.1



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

* [PULL 22/45] hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (20 preceding siblings ...)
  2020-03-17 10:03 ` [PULL 21/45] spapr: Clean up RMA size calculation David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 23/45] hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array David Gibson
                   ` (25 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

This header use the srp_* structures declared in "hw/scsi/srp.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-2-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/viosrp.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/scsi/viosrp.h b/hw/scsi/viosrp.h
index d8e365db1e..25676c2383 100644
--- a/hw/scsi/viosrp.h
+++ b/hw/scsi/viosrp.h
@@ -34,6 +34,8 @@
 #ifndef PPC_VIOSRP_H
 #define PPC_VIOSRP_H
 
+#include "hw/scsi/srp.h"
+
 #define SRP_VERSION "16.a"
 #define SRP_MAX_IU_LEN    256
 #define SRP_MAX_LOC_LEN 32
-- 
2.24.1



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

* [PULL 23/45] hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (21 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 22/45] hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 24/45] hw/scsi/spapr_vscsi: Simplify a bit David Gibson
                   ` (24 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Replace sizeof() flexible arrays union srp_iu/viosrp_iu by the
SRP_MAX_IU_LEN definition, which is what this code actually meant
to use.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-3-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 7d584e7732..7e397ed797 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -671,8 +671,8 @@ static void vscsi_process_login(VSCSIState *s, vscsi_req *req)
      */
     rsp->req_lim_delta = cpu_to_be32(VSCSI_REQ_LIMIT-2);
     rsp->tag = tag;
-    rsp->max_it_iu_len = cpu_to_be32(sizeof(union srp_iu));
-    rsp->max_ti_iu_len = cpu_to_be32(sizeof(union srp_iu));
+    rsp->max_it_iu_len = cpu_to_be32(SRP_MAX_IU_LEN);
+    rsp->max_ti_iu_len = cpu_to_be32(SRP_MAX_IU_LEN);
     /* direct and indirect */
     rsp->buf_fmt = cpu_to_be16(SRP_BUF_FORMAT_DIRECT | SRP_BUF_FORMAT_INDIRECT);
 
@@ -1088,7 +1088,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq)
      * in our 256 bytes IUs. If not we'll have to increase the size
      * of the structure.
      */
-    if (crq->s.IU_length > sizeof(union viosrp_iu)) {
+    if (crq->s.IU_length > SRP_MAX_IU_LEN) {
         fprintf(stderr, "VSCSI: SRP IU too long (%d bytes) !\n",
                 crq->s.IU_length);
         vscsi_put_req(req);
-- 
2.24.1



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

* [PULL 24/45] hw/scsi/spapr_vscsi: Simplify a bit
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (22 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 23/45] hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 25/45] hw/scsi/spapr_vscsi: Introduce req_iu() helper David Gibson
                   ` (23 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

We already have a 'iu' pointer, use it
(this simplifies the next commit).

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-4-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 7e397ed797..3cb5a38181 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -261,9 +261,9 @@ static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req,
     if (status) {
         iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2;
         if (req->senselen) {
-            req->iu.srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID;
-            req->iu.srp.rsp.sense_data_len = cpu_to_be32(req->senselen);
-            memcpy(req->iu.srp.rsp.data, req->sense, req->senselen);
+            iu->srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID;
+            iu->srp.rsp.sense_data_len = cpu_to_be32(req->senselen);
+            memcpy(iu->srp.rsp.data, req->sense, req->senselen);
             total_len += req->senselen;
         }
     } else {
-- 
2.24.1



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

* [PULL 25/45] hw/scsi/spapr_vscsi: Introduce req_iu() helper
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (23 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 24/45] hw/scsi/spapr_vscsi: Simplify a bit David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 26/45] hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size David Gibson
                   ` (22 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Introduce the req_iu() helper which returns a pointer to
the viosrp_iu union held in the vscsi_req structure.
This simplifies the next patch.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-5-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 39 +++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 3cb5a38181..70547f98ac 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -97,6 +97,11 @@ typedef struct {
     vscsi_req reqs[VSCSI_REQ_LIMIT];
 } VSCSIState;
 
+static union viosrp_iu *req_iu(vscsi_req *req)
+{
+    return &req->iu;
+}
+
 static struct vscsi_req *vscsi_get_req(VSCSIState *s)
 {
     vscsi_req *req;
@@ -121,7 +126,7 @@ static struct vscsi_req *vscsi_find_req(VSCSIState *s, uint64_t srp_tag)
 
     for (i = 0; i < VSCSI_REQ_LIMIT; i++) {
         req = &s->reqs[i];
-        if (req->iu.srp.cmd.tag == srp_tag) {
+        if (req_iu(req)->srp.cmd.tag == srp_tag) {
             return req;
         }
     }
@@ -188,7 +193,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req,
     req->crq.s.reserved = 0x00;
     req->crq.s.timeout = cpu_to_be16(0x0000);
     req->crq.s.IU_length = cpu_to_be16(length);
-    req->crq.s.IU_data_ptr = req->iu.srp.rsp.tag; /* right byte order */
+    req->crq.s.IU_data_ptr = req_iu(req)->srp.rsp.tag; /* right byte order */
 
     if (rc == 0) {
         req->crq.s.status = VIOSRP_OK;
@@ -224,7 +229,7 @@ static void vscsi_makeup_sense(VSCSIState *s, vscsi_req *req,
 static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req,
                           uint8_t status, int32_t res_in, int32_t res_out)
 {
-    union viosrp_iu *iu = &req->iu;
+    union viosrp_iu *iu = req_iu(req);
     uint64_t tag = iu->srp.rsp.tag;
     int total_len = sizeof(iu->srp.rsp);
     uint8_t sol_not = iu->srp.cmd.sol_not;
@@ -285,7 +290,7 @@ static int vscsi_fetch_desc(VSCSIState *s, struct vscsi_req *req,
                             unsigned n, unsigned buf_offset,
                             struct srp_direct_buf *ret)
 {
-    struct srp_cmd *cmd = &req->iu.srp.cmd;
+    struct srp_cmd *cmd = &req_iu(req)->srp.cmd;
 
     switch (req->dma_fmt) {
     case SRP_NO_DATA_DESC: {
@@ -473,7 +478,7 @@ static int data_out_desc_size(struct srp_cmd *cmd)
 
 static int vscsi_preprocess_desc(vscsi_req *req)
 {
-    struct srp_cmd *cmd = &req->iu.srp.cmd;
+    struct srp_cmd *cmd = &req_iu(req)->srp.cmd;
 
     req->cdb_offset = cmd->add_cdb_len & ~3;
 
@@ -655,7 +660,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIRequest *sreq)
 
 static void vscsi_process_login(VSCSIState *s, vscsi_req *req)
 {
-    union viosrp_iu *iu = &req->iu;
+    union viosrp_iu *iu = req_iu(req);
     struct srp_login_rsp *rsp = &iu->srp.login_rsp;
     uint64_t tag = iu->srp.rsp.tag;
 
@@ -681,7 +686,7 @@ static void vscsi_process_login(VSCSIState *s, vscsi_req *req)
 
 static void vscsi_inquiry_no_target(VSCSIState *s, vscsi_req *req)
 {
-    uint8_t *cdb = req->iu.srp.cmd.cdb;
+    uint8_t *cdb = req_iu(req)->srp.cmd.cdb;
     uint8_t resp_data[36];
     int rc, len, alen;
 
@@ -770,7 +775,7 @@ static void vscsi_report_luns(VSCSIState *s, vscsi_req *req)
 
 static int vscsi_queue_cmd(VSCSIState *s, vscsi_req *req)
 {
-    union srp_iu *srp = &req->iu.srp;
+    union srp_iu *srp = &req_iu(req)->srp;
     SCSIDevice *sdev;
     int n, lun;
 
@@ -821,7 +826,7 @@ static int vscsi_queue_cmd(VSCSIState *s, vscsi_req *req)
 
 static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
 {
-    union viosrp_iu *iu = &req->iu;
+    union viosrp_iu *iu = req_iu(req);
     vscsi_req *tmpreq;
     int i, lun = 0, resp = SRP_TSK_MGMT_COMPLETE;
     SCSIDevice *d;
@@ -831,7 +836,8 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
     fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n",
             iu->srp.tsk_mgmt.tsk_mgmt_func);
 
-    d = vscsi_device_find(&s->bus, be64_to_cpu(req->iu.srp.tsk_mgmt.lun), &lun);
+    d = vscsi_device_find(&s->bus,
+                          be64_to_cpu(req_iu(req)->srp.tsk_mgmt.lun), &lun);
     if (!d) {
         resp = SRP_TSK_MGMT_FIELDS_INVALID;
     } else {
@@ -842,7 +848,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
                 break;
             }
 
-            tmpreq = vscsi_find_req(s, req->iu.srp.tsk_mgmt.task_tag);
+            tmpreq = vscsi_find_req(s, req_iu(req)->srp.tsk_mgmt.task_tag);
             if (tmpreq && tmpreq->sreq) {
                 assert(tmpreq->sreq->hba_private);
                 scsi_req_cancel(tmpreq->sreq);
@@ -867,7 +873,8 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
 
             for (i = 0; i < VSCSI_REQ_LIMIT; i++) {
                 tmpreq = &s->reqs[i];
-                if (tmpreq->iu.srp.cmd.lun != req->iu.srp.tsk_mgmt.lun) {
+                if (req_iu(tmpreq)->srp.cmd.lun
+                        != req_iu(req)->srp.tsk_mgmt.lun) {
                     continue;
                 }
                 if (!tmpreq->active || !tmpreq->sreq) {
@@ -911,7 +918,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
 
 static int vscsi_handle_srp_req(VSCSIState *s, vscsi_req *req)
 {
-    union srp_iu *srp = &req->iu.srp;
+    union srp_iu *srp = &req_iu(req)->srp;
     int done = 1;
     uint8_t opcode = srp->rsp.opcode;
 
@@ -948,7 +955,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi_req *req)
     struct mad_adapter_info_data info;
     int rc;
 
-    sinfo = &req->iu.mad.adapter_info;
+    sinfo = &req_iu(req)->mad.adapter_info;
 
 #if 0 /* What for ? */
     rc = spapr_vio_dma_read(&s->vdev, be64_to_cpu(sinfo->buffer),
@@ -984,7 +991,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req)
     uint64_t buffer;
     int rc;
 
-    vcap = &req->iu.mad.capabilities;
+    vcap = &req_iu(req)->mad.capabilities;
     req_len = len = be16_to_cpu(vcap->common.length);
     buffer = be64_to_cpu(vcap->buffer);
     if (len > sizeof(cap)) {
@@ -1029,7 +1036,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req)
 
 static int vscsi_handle_mad_req(VSCSIState *s, vscsi_req *req)
 {
-    union mad_iu *mad = &req->iu.mad;
+    union mad_iu *mad = &req_iu(req)->mad;
     bool request_handled = false;
     uint64_t retlen = 0;
 
-- 
2.24.1



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

* [PULL 26/45] hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (24 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 25/45] hw/scsi/spapr_vscsi: Introduce req_iu() helper David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 27/45] hw/scsi/spapr_vscsi: Prevent buffer overflow David Gibson
                   ` (21 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

The 'union srp_iu' is meant as a pointer to any SRP Information
Unit type, it is not related to the size of a VIO DMA buffer.

Use a plain buffer for the VIO DMA read/write calls.
We can remove the reserved buffer from the 'union srp_iu'.

This issue was noticed when replacing the zero-length arrays
from hw/scsi/srp.h with flexible array member,
'clang -fsanitize=undefined' reported:

  hw/scsi/spapr_vscsi.c:69:29: error: field 'iu' with variable sized type 'union viosrp_iu' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
       union viosrp_iu         iu;
                               ^

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-6-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 10 +++++-----
 hw/scsi/viosrp.h      |  1 -
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index 70547f98ac..acf9bb50bc 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -66,7 +66,7 @@ typedef union vscsi_crq {
 
 typedef struct vscsi_req {
     vscsi_crq               crq;
-    union viosrp_iu         iu;
+    uint8_t                 viosrp_iu_buf[SRP_MAX_IU_LEN];
 
     /* SCSI request tracking */
     SCSIRequest             *sreq;
@@ -99,7 +99,7 @@ typedef struct {
 
 static union viosrp_iu *req_iu(vscsi_req *req)
 {
-    return &req->iu;
+    return (union viosrp_iu *)req->viosrp_iu_buf;
 }
 
 static struct vscsi_req *vscsi_get_req(VSCSIState *s)
@@ -183,7 +183,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req,
 
     /* First copy the SRP */
     rc = spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr,
-                             &req->iu, length);
+                             &req->viosrp_iu_buf, length);
     if (rc) {
         fprintf(stderr, "vscsi_send_iu: DMA write failure !\n");
     }
@@ -602,7 +602,7 @@ static const VMStateDescription vmstate_spapr_vscsi_req = {
     .minimum_version_id = 1,
     .fields = (VMStateField[]) {
         VMSTATE_BUFFER(crq.raw, vscsi_req),
-        VMSTATE_BUFFER(iu.srp.reserved, vscsi_req),
+        VMSTATE_BUFFER(viosrp_iu_buf, vscsi_req),
         VMSTATE_UINT32(qtag, vscsi_req),
         VMSTATE_BOOL(active, vscsi_req),
         VMSTATE_UINT32(data_len, vscsi_req),
@@ -1103,7 +1103,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq)
     }
 
     /* XXX Handle failure differently ? */
-    if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->iu,
+    if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->viosrp_iu_buf,
                            crq->s.IU_length)) {
         fprintf(stderr, "vscsi_got_payload: DMA read failure !\n");
         vscsi_put_req(req);
diff --git a/hw/scsi/viosrp.h b/hw/scsi/viosrp.h
index 25676c2383..e5f9768e8f 100644
--- a/hw/scsi/viosrp.h
+++ b/hw/scsi/viosrp.h
@@ -49,7 +49,6 @@ union srp_iu {
     struct srp_tsk_mgmt tsk_mgmt;
     struct srp_cmd cmd;
     struct srp_rsp rsp;
-    uint8_t reserved[SRP_MAX_IU_LEN];
 };
 
 enum viosrp_crq_formats {
-- 
2.24.1



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

* [PULL 27/45] hw/scsi/spapr_vscsi: Prevent buffer overflow
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (25 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 26/45] hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 28/45] hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event David Gibson
                   ` (20 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Depending on the length of sense data, vscsi_send_rsp() can
overrun the buffer size.
Do not copy more than SRP_MAX_IU_DATA_LEN bytes, and assert
that vscsi_send_iu() is always called with a size in range.

Reported-by: Paolo Bonzini <pbonzini@redhat.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-7-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index acf9bb50bc..c4c4f31170 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -55,6 +55,8 @@
 #define VSCSI_MAX_SECTORS       4096
 #define VSCSI_REQ_LIMIT         24
 
+/* Maximum size of a IU payload */
+#define SRP_MAX_IU_DATA_LEN     (SRP_MAX_IU_LEN - sizeof(union srp_iu))
 #define SRP_RSP_SENSE_DATA_LEN  18
 
 #define SRP_REPORT_LUNS_WLUN    0xc10100000000000ULL
@@ -181,6 +183,8 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req,
 {
     long rc, rc1;
 
+    assert(length <= SRP_MAX_IU_LEN);
+
     /* First copy the SRP */
     rc = spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr,
                              &req->viosrp_iu_buf, length);
@@ -266,10 +270,12 @@ static int vscsi_send_rsp(VSCSIState *s, vscsi_req *req,
     if (status) {
         iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2;
         if (req->senselen) {
+            int sense_data_len = MIN(req->senselen, SRP_MAX_IU_DATA_LEN);
+
             iu->srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID;
-            iu->srp.rsp.sense_data_len = cpu_to_be32(req->senselen);
-            memcpy(iu->srp.rsp.data, req->sense, req->senselen);
-            total_len += req->senselen;
+            iu->srp.rsp.sense_data_len = cpu_to_be32(sense_data_len);
+            memcpy(iu->srp.rsp.data, req->sense, sense_data_len);
+            total_len += sense_data_len;
         }
     } else {
         iu->srp.rsp.sol_not = (sol_not & 0x02) >> 1;
@@ -896,6 +902,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
     }
 
     /* Compose the response here as  */
+    QEMU_BUILD_BUG_ON(SRP_MAX_IU_DATA_LEN < 4);
     memset(iu, 0, sizeof(struct srp_rsp) + 4);
     iu->srp.rsp.opcode = SRP_RSP;
     iu->srp.rsp.req_lim_delta = cpu_to_be32(1);
-- 
2.24.1



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

* [PULL 28/45] hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (26 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 27/45] hw/scsi/spapr_vscsi: Prevent buffer overflow David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 29/45] spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest David Gibson
                   ` (19 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini, Philippe Mathieu-Daudé,
	David Gibson

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200305121253.19078-8-philmd@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/scsi/spapr_vscsi.c | 4 +---
 hw/scsi/trace-events  | 1 +
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
index c4c4f31170..923488beb2 100644
--- a/hw/scsi/spapr_vscsi.c
+++ b/hw/scsi/spapr_vscsi.c
@@ -839,9 +839,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)
     uint64_t tag = iu->srp.rsp.tag;
     uint8_t sol_not = iu->srp.cmd.sol_not;
 
-    fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n",
-            iu->srp.tsk_mgmt.tsk_mgmt_func);
-
+    trace_spapr_vscsi_process_tsk_mgmt(iu->srp.tsk_mgmt.tsk_mgmt_func);
     d = vscsi_device_find(&s->bus,
                           be64_to_cpu(req_iu(req)->srp.tsk_mgmt.lun), &lun);
     if (!d) {
diff --git a/hw/scsi/trace-events b/hw/scsi/trace-events
index b0820052f8..9a4a60ca63 100644
--- a/hw/scsi/trace-events
+++ b/hw/scsi/trace-events
@@ -227,6 +227,7 @@ spapr_vscsi_command_complete_status(uint32_t status) "Command complete err=%"PRI
 spapr_vscsi_save_request(uint32_t qtag, unsigned desc, unsigned offset) "saving tag=%"PRIu32", current desc#%u, offset=0x%x"
 spapr_vscsi_load_request(uint32_t qtag, unsigned desc, unsigned offset) "restoring tag=%"PRIu32", current desc#%u, offset=0x%x"
 spapr_vscsi_process_login(void) "Got login, sending response !"
+spapr_vscsi_process_tsk_mgmt(uint8_t func) "tsk_mgmt_func 0x%02x"
 spapr_vscsi_queue_cmd_no_drive(uint64_t lun) "Command for lun 0x%08" PRIx64 " with no drive"
 spapr_vscsi_queue_cmd(uint32_t qtag, unsigned cdb, const char *cmd, int lun, int ret) "Queued command tag 0x%"PRIx32" CMD 0x%x=%s LUN %d ret: %d"
 spapr_vscsi_do_crq(unsigned c0, unsigned c1) "crq: %02x %02x ..."
-- 
2.24.1



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

* [PULL 29/45] spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (27 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 28/45] hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 30/45] target/ppc: Fix rlwinm on ppc64 David Gibson
                   ` (18 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Cédric Le Goater <clg@kaod.org>

The "ibm,xive-lisn-ranges" defines ranges of interrupt numbers that
the guest can use to configure IPIs. It starts at 0 today but it could
change to some other offset. Make clear which IRQ range we are
exposing by using SPAPR_IRQ_IPI in the property definition.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20200306123307.1348-1-clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/intc/spapr_xive.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c
index 20c8155557..6608d7220a 100644
--- a/hw/intc/spapr_xive.c
+++ b/hw/intc/spapr_xive.c
@@ -677,8 +677,8 @@ static void spapr_xive_dt(SpaprInterruptController *intc, uint32_t nr_servers,
     uint64_t timas[2 * 2];
     /* Interrupt number ranges for the IPIs */
     uint32_t lisn_ranges[] = {
-        cpu_to_be32(0),
-        cpu_to_be32(nr_servers),
+        cpu_to_be32(SPAPR_IRQ_IPI),
+        cpu_to_be32(SPAPR_IRQ_IPI + nr_servers),
     };
     /*
      * EQ size - the sizes of pages supported by the system 4K, 64K,
-- 
2.24.1



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

* [PULL 30/45] target/ppc: Fix rlwinm on ppc64
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (28 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 29/45] spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 31/45] ppc/spapr: Move GPRs setup to one place David Gibson
                   ` (17 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, qemu-stable, Richard Henderson, mdroth, qemu-devel,
	Vitaly Chikunov, groug, qemu-ppc, clg, David Gibson

From: Vitaly Chikunov <vt@altlinux.org>

rlwinm cannot just AND with Mask if shift value is zero on ppc64 when
Mask Begin is greater than Mask End and high bits are set to 1.

Note that PowerISA 3.0B says that for `rlwinm' ROTL32 is used, and
ROTL32 is defined (in 3.3.14) so that rotated value should have two
copies of lower word of the source value.

This seems to be another incarnation of the fix from 820724d170
("target-ppc: Fix rlwimi, rlwinm, rlwnm again"), except I leave
optimization when Mask value is less than 32 bits.

Fixes: 7b4d326f47 ("target-ppc: Use the new deposit and extract ops")
Cc: qemu-stable@nongnu.org
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
Message-Id: <20200309204557.14836-1-vt@altlinux.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 target/ppc/translate.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 36fa27367c..127c82a24e 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -1938,15 +1938,17 @@ static void gen_rlwinm(DisasContext *ctx)
         me += 32;
 #endif
         mask = MASK(mb, me);
-        if (sh == 0) {
-            tcg_gen_andi_tl(t_ra, t_rs, mask);
-        } else if (mask <= 0xffffffffu) {
-            TCGv_i32 t0 = tcg_temp_new_i32();
-            tcg_gen_trunc_tl_i32(t0, t_rs);
-            tcg_gen_rotli_i32(t0, t0, sh);
-            tcg_gen_andi_i32(t0, t0, mask);
-            tcg_gen_extu_i32_tl(t_ra, t0);
-            tcg_temp_free_i32(t0);
+        if (mask <= 0xffffffffu) {
+            if (sh == 0) {
+                tcg_gen_andi_tl(t_ra, t_rs, mask);
+            } else {
+                TCGv_i32 t0 = tcg_temp_new_i32();
+                tcg_gen_trunc_tl_i32(t0, t_rs);
+                tcg_gen_rotli_i32(t0, t0, sh);
+                tcg_gen_andi_i32(t0, t0, mask);
+                tcg_gen_extu_i32_tl(t_ra, t0);
+                tcg_temp_free_i32(t0);
+            }
         } else {
 #if defined(TARGET_PPC64)
             tcg_gen_deposit_i64(t_ra, t_rs, t_rs, 32, 32);
-- 
2.24.1



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

* [PULL 31/45] ppc/spapr: Move GPRs setup to one place
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (29 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 30/45] target/ppc: Fix rlwinm on ppc64 David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 32/45] pseries: Update SLOF firmware image David Gibson
                   ` (16 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

At the moment "pseries" starts in SLOF which only expects the FDT blob
pointer in r3. As we are going to introduce a OpenFirmware support in
QEMU, we will be booting OF clients directly and these expect a stack
pointer in r1, Linux looks at r3/r4 for the initramdisk location
(although vmlinux can find this from the device tree but zImage from
distro kernels cannot).

This extends spapr_cpu_set_entry_state() to take more registers. This
should cause no behavioral change.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-Id: <20200310050733.29805-2-aik@ozlabs.ru>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c                  | 2 +-
 hw/ppc/spapr_cpu_core.c         | 6 +++++-
 hw/ppc/spapr_rtas.c             | 2 +-
 include/hw/ppc/spapr_cpu_core.h | 4 +++-
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 1950fc303e..1038420c4a 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1698,7 +1698,7 @@ static void spapr_machine_reset(MachineState *machine)
     spapr->fdt_blob = fdt;
 
     /* Set up the entry state */
-    spapr_cpu_set_entry_state(first_ppc_cpu, SPAPR_ENTRY_POINT, fdt_addr);
+    spapr_cpu_set_entry_state(first_ppc_cpu, SPAPR_ENTRY_POINT, 0, fdt_addr, 0);
     first_ppc_cpu->env.gpr[5] = 0;
 
     spapr->cas_reboot = false;
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 36ed3a2b66..ac1c109427 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -76,13 +76,17 @@ static void spapr_reset_vcpu(PowerPCCPU *cpu)
     spapr_irq_cpu_intc_reset(spapr, cpu);
 }
 
-void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, target_ulong r3)
+void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip,
+                               target_ulong r1, target_ulong r3,
+                               target_ulong r4)
 {
     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
     CPUPPCState *env = &cpu->env;
 
     env->nip = nip;
+    env->gpr[1] = r1;
     env->gpr[3] = r3;
+    env->gpr[4] = r4;
     kvmppc_set_reg_ppc_online(cpu, 1);
     CPU(cpu)->halted = 0;
     /* Enable Power-saving mode Exit Cause exceptions */
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 656fdd2216..fe83b50c66 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -190,7 +190,7 @@ static void rtas_start_cpu(PowerPCCPU *callcpu, SpaprMachineState *spapr,
      */
     newcpu->env.tb_env->tb_offset = callcpu->env.tb_env->tb_offset;
 
-    spapr_cpu_set_entry_state(newcpu, start, r3);
+    spapr_cpu_set_entry_state(newcpu, start, 0, r3, 0);
 
     qemu_cpu_kick(CPU(newcpu));
 
diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h
index 1c4cc6559c..7aed8f555b 100644
--- a/include/hw/ppc/spapr_cpu_core.h
+++ b/include/hw/ppc/spapr_cpu_core.h
@@ -40,7 +40,9 @@ typedef struct SpaprCpuCoreClass {
 } SpaprCpuCoreClass;
 
 const char *spapr_get_cpu_core_type(const char *cpu_type);
-void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip, target_ulong r3);
+void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip,
+                               target_ulong r1, target_ulong r3,
+                               target_ulong r4);
 
 typedef struct SpaprCpuState {
     uint64_t vpa_addr;
-- 
2.24.1



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

* [PULL 32/45] pseries: Update SLOF firmware image
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (30 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 31/45] ppc/spapr: Move GPRs setup to one place David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 33/45] spapr/rtas: Reserve space for RTAS blob and log David Gibson
                   ` (15 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

This mainly fixes virtio-serial with and without
enabled iommu-platform.

The full list of changes is:

Alexey Kardashevskiy (3):
      llfw: Fix debug printf warnings
      virtio-serial: Close device completely
      version: update to 20200312

Cédric Le Goater (1):
      virtio: Fix typo in virtio_serial_init()

Greg Kurz (2):
      virtio-serial: Don't override some words
      virtio-serial: Rework shutdown sequence

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 pc-bios/README   |   2 +-
 pc-bios/slof.bin | Bin 968616 -> 968848 bytes
 roms/SLOF        |   2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/README b/pc-bios/README
index a71fb318b3..bab0e8ec1a 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -14,7 +14,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/aik/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20200221.
+  built from git tag qemu-slof-20200312.
 
 - sgabios (the Serial Graphics Adapter option ROM) provides a means for
   legacy x86 software to communicate with an attached serial console as
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index 1c5948561639cfe244ad5d60506050ddb0c9b5b2..b87353befa2ec0de2ef405dd1fd89c616f4f054e 100644
GIT binary patch
delta 151063
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

delta 150546
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
F{RQN(^11*3

diff --git a/roms/SLOF b/roms/SLOF
index 7c98b3b613..8d4033d0d2 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 7c98b3b613338a385722a953517349664aa4f532
+Subproject commit 8d4033d0d2e5b434fe14a81d5192cdb1911469e4
-- 
2.24.1



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

* [PULL 33/45] spapr/rtas: Reserve space for RTAS blob and log
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (31 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 32/45] pseries: Update SLOF firmware image David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 34/45] spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node David Gibson
                   ` (14 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

At the moment SLOF reserves space for RTAS and instantiates the RTAS blob
which is 20 bytes binary blob calling an hypercall. The rest of the RTAS
area is a log which SLOF has no idea about but QEMU does.

This moves RTAS sizing to QEMU and this overrides the size from SLOF.
The only remaining problem is that SLOF copies the number of bytes it
reserved (2KB for now) so QEMU needs to reserve at least this much;
SLOF will be fixed separately to check that rtas-size from QEMU is
enough for those 20 bytes for the H_RTAS hcall.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-Id: <20200316011841.99970-1-aik@ozlabs.ru>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c         | 1 +
 include/hw/ppc/spapr.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 1038420c4a..2f9a65b414 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -967,6 +967,7 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt)
     _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains",
                      maxdomains, sizeof(maxdomains)));
 
+    _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_SIZE));
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max",
                           RTAS_ERROR_LOG_MAX));
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate",
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 2015e37ac5..35b489a549 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -736,6 +736,7 @@ void spapr_load_rtas(SpaprMachineState *spapr, void *fdt, hwaddr addr);
 #define SPAPR_IS_PCI_LIOBN(liobn)   (!!((liobn) & 0x80000000))
 #define SPAPR_PCI_DMA_WINDOW_NUM(liobn) ((liobn) & 0xff)
 
+#define RTAS_SIZE               2048
 #define RTAS_ERROR_LOG_MAX      2048
 
 /* Offset from rtas-base where error log is placed */
-- 
2.24.1



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

* [PULL 34/45] spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (32 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 33/45] spapr/rtas: Reserve space for RTAS blob and log David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 35/45] spapr: Move creation of ibm,architecture-vec-5 property David Gibson
                   ` (13 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

Currently this node with information about hotpluggable memory is created
from spapr_dt_cas_updates().  But that's just a hangover from when we
created it only as a diff to the device tree at CAS time.  Now that we
fully rebuild the DT as CAS time, it makes more sense to create this along
with the rest of the memory information in the device tree.

So, move it to spapr_populate_memory().  The patch is huge, but it's nearly
all just code motion.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr.c | 512 +++++++++++++++++++++++++------------------------
 1 file changed, 257 insertions(+), 255 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 2f9a65b414..5e938833f3 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -341,257 +341,6 @@ static int spapr_populate_memory_node(void *fdt, int nodeid, hwaddr start,
     return off;
 }
 
-static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
-{
-    MachineState *machine = MACHINE(spapr);
-    hwaddr mem_start, node_size;
-    int i, nb_nodes = machine->numa_state->num_nodes;
-    NodeInfo *nodes = machine->numa_state->nodes;
-
-    for (i = 0, mem_start = 0; i < nb_nodes; ++i) {
-        if (!nodes[i].node_mem) {
-            continue;
-        }
-        if (mem_start >= machine->ram_size) {
-            node_size = 0;
-        } else {
-            node_size = nodes[i].node_mem;
-            if (node_size > machine->ram_size - mem_start) {
-                node_size = machine->ram_size - mem_start;
-            }
-        }
-        if (!mem_start) {
-            /* spapr_machine_init() checks for rma_size <= node0_size
-             * already */
-            spapr_populate_memory_node(fdt, i, 0, spapr->rma_size);
-            mem_start += spapr->rma_size;
-            node_size -= spapr->rma_size;
-        }
-        for ( ; node_size; ) {
-            hwaddr sizetmp = pow2floor(node_size);
-
-            /* mem_start != 0 here */
-            if (ctzl(mem_start) < ctzl(sizetmp)) {
-                sizetmp = 1ULL << ctzl(mem_start);
-            }
-
-            spapr_populate_memory_node(fdt, i, mem_start, sizetmp);
-            node_size -= sizetmp;
-            mem_start += sizetmp;
-        }
-    }
-
-    return 0;
-}
-
-static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
-                                  SpaprMachineState *spapr)
-{
-    MachineState *ms = MACHINE(spapr);
-    PowerPCCPU *cpu = POWERPC_CPU(cs);
-    CPUPPCState *env = &cpu->env;
-    PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs);
-    int index = spapr_get_vcpu_id(cpu);
-    uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40),
-                       0xffffffff, 0xffffffff};
-    uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq()
-        : SPAPR_TIMEBASE_FREQ;
-    uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : 1000000000;
-    uint32_t page_sizes_prop[64];
-    size_t page_sizes_prop_size;
-    unsigned int smp_threads = ms->smp.threads;
-    uint32_t vcpus_per_socket = smp_threads * ms->smp.cores;
-    uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)};
-    int compat_smt = MIN(smp_threads, ppc_compat_max_vthreads(cpu));
-    SpaprDrc *drc;
-    int drc_index;
-    uint32_t radix_AP_encodings[PPC_PAGE_SIZES_MAX_SZ];
-    int i;
-
-    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index);
-    if (drc) {
-        drc_index = spapr_drc_index(drc);
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,my-drc-index", drc_index)));
-    }
-
-    _FDT((fdt_setprop_cell(fdt, offset, "reg", index)));
-    _FDT((fdt_setprop_string(fdt, offset, "device_type", "cpu")));
-
-    _FDT((fdt_setprop_cell(fdt, offset, "cpu-version", env->spr[SPR_PVR])));
-    _FDT((fdt_setprop_cell(fdt, offset, "d-cache-block-size",
-                           env->dcache_line_size)));
-    _FDT((fdt_setprop_cell(fdt, offset, "d-cache-line-size",
-                           env->dcache_line_size)));
-    _FDT((fdt_setprop_cell(fdt, offset, "i-cache-block-size",
-                           env->icache_line_size)));
-    _FDT((fdt_setprop_cell(fdt, offset, "i-cache-line-size",
-                           env->icache_line_size)));
-
-    if (pcc->l1_dcache_size) {
-        _FDT((fdt_setprop_cell(fdt, offset, "d-cache-size",
-                               pcc->l1_dcache_size)));
-    } else {
-        warn_report("Unknown L1 dcache size for cpu");
-    }
-    if (pcc->l1_icache_size) {
-        _FDT((fdt_setprop_cell(fdt, offset, "i-cache-size",
-                               pcc->l1_icache_size)));
-    } else {
-        warn_report("Unknown L1 icache size for cpu");
-    }
-
-    _FDT((fdt_setprop_cell(fdt, offset, "timebase-frequency", tbfreq)));
-    _FDT((fdt_setprop_cell(fdt, offset, "clock-frequency", cpufreq)));
-    _FDT((fdt_setprop_cell(fdt, offset, "slb-size", cpu->hash64_opts->slb_size)));
-    _FDT((fdt_setprop_cell(fdt, offset, "ibm,slb-size", cpu->hash64_opts->slb_size)));
-    _FDT((fdt_setprop_string(fdt, offset, "status", "okay")));
-    _FDT((fdt_setprop(fdt, offset, "64-bit", NULL, 0)));
-
-    if (env->spr_cb[SPR_PURR].oea_read) {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,purr", 1)));
-    }
-    if (env->spr_cb[SPR_SPURR].oea_read) {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,spurr", 1)));
-    }
-
-    if (ppc_hash64_has(cpu, PPC_HASH64_1TSEG)) {
-        _FDT((fdt_setprop(fdt, offset, "ibm,processor-segment-sizes",
-                          segs, sizeof(segs))));
-    }
-
-    /* Advertise VSX (vector extensions) if available
-     *   1               == VMX / Altivec available
-     *   2               == VSX available
-     *
-     * Only CPUs for which we create core types in spapr_cpu_core.c
-     * are possible, and all of those have VMX */
-    if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2)));
-    } else {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1)));
-    }
-
-    /* Advertise DFP (Decimal Floating Point) if available
-     *   0 / no property == no DFP
-     *   1               == DFP available */
-    if (spapr_get_cap(spapr, SPAPR_CAP_DFP) != 0) {
-        _FDT((fdt_setprop_cell(fdt, offset, "ibm,dfp", 1)));
-    }
-
-    page_sizes_prop_size = ppc_create_page_sizes_prop(cpu, page_sizes_prop,
-                                                      sizeof(page_sizes_prop));
-    if (page_sizes_prop_size) {
-        _FDT((fdt_setprop(fdt, offset, "ibm,segment-page-sizes",
-                          page_sizes_prop, page_sizes_prop_size)));
-    }
-
-    spapr_populate_pa_features(spapr, cpu, fdt, offset);
-
-    _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id",
-                           cs->cpu_index / vcpus_per_socket)));
-
-    _FDT((fdt_setprop(fdt, offset, "ibm,pft-size",
-                      pft_size_prop, sizeof(pft_size_prop))));
-
-    if (ms->numa_state->num_nodes > 1) {
-        _FDT(spapr_fixup_cpu_numa_dt(fdt, offset, cpu));
-    }
-
-    _FDT(spapr_fixup_cpu_smt_dt(fdt, offset, cpu, compat_smt));
-
-    if (pcc->radix_page_info) {
-        for (i = 0; i < pcc->radix_page_info->count; i++) {
-            radix_AP_encodings[i] =
-                cpu_to_be32(pcc->radix_page_info->entries[i]);
-        }
-        _FDT((fdt_setprop(fdt, offset, "ibm,processor-radix-AP-encodings",
-                          radix_AP_encodings,
-                          pcc->radix_page_info->count *
-                          sizeof(radix_AP_encodings[0]))));
-    }
-
-    /*
-     * We set this property to let the guest know that it can use the large
-     * decrementer and its width in bits.
-     */
-    if (spapr_get_cap(spapr, SPAPR_CAP_LARGE_DECREMENTER) != SPAPR_CAP_OFF)
-        _FDT((fdt_setprop_u32(fdt, offset, "ibm,dec-bits",
-                              pcc->lrg_decr_bits)));
-}
-
-static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr)
-{
-    CPUState **rev;
-    CPUState *cs;
-    int n_cpus;
-    int cpus_offset;
-    char *nodename;
-    int i;
-
-    cpus_offset = fdt_add_subnode(fdt, 0, "cpus");
-    _FDT(cpus_offset);
-    _FDT((fdt_setprop_cell(fdt, cpus_offset, "#address-cells", 0x1)));
-    _FDT((fdt_setprop_cell(fdt, cpus_offset, "#size-cells", 0x0)));
-
-    /*
-     * We walk the CPUs in reverse order to ensure that CPU DT nodes
-     * created by fdt_add_subnode() end up in the right order in FDT
-     * for the guest kernel the enumerate the CPUs correctly.
-     *
-     * The CPU list cannot be traversed in reverse order, so we need
-     * to do extra work.
-     */
-    n_cpus = 0;
-    rev = NULL;
-    CPU_FOREACH(cs) {
-        rev = g_renew(CPUState *, rev, n_cpus + 1);
-        rev[n_cpus++] = cs;
-    }
-
-    for (i = n_cpus - 1; i >= 0; i--) {
-        CPUState *cs = rev[i];
-        PowerPCCPU *cpu = POWERPC_CPU(cs);
-        int index = spapr_get_vcpu_id(cpu);
-        DeviceClass *dc = DEVICE_GET_CLASS(cs);
-        int offset;
-
-        if (!spapr_is_thread0_in_vcore(spapr, cpu)) {
-            continue;
-        }
-
-        nodename = g_strdup_printf("%s@%x", dc->fw_name, index);
-        offset = fdt_add_subnode(fdt, cpus_offset, nodename);
-        g_free(nodename);
-        _FDT(offset);
-        spapr_populate_cpu_dt(cs, fdt, offset, spapr);
-    }
-
-    g_free(rev);
-}
-
-static int spapr_rng_populate_dt(void *fdt)
-{
-    int node;
-    int ret;
-
-    node = qemu_fdt_add_subnode(fdt, "/ibm,platform-facilities");
-    if (node <= 0) {
-        return -1;
-    }
-    ret = fdt_setprop_string(fdt, node, "device_type",
-                             "ibm,platform-facilities");
-    ret |= fdt_setprop_cell(fdt, node, "#address-cells", 0x1);
-    ret |= fdt_setprop_cell(fdt, node, "#size-cells", 0x0);
-
-    node = fdt_add_subnode(fdt, node, "ibm,random-v1");
-    if (node <= 0) {
-        return -1;
-    }
-    ret |= fdt_setprop_string(fdt, node, "compatible", "ibm,random");
-
-    return ret ? -1 : 0;
-}
-
 static uint32_t spapr_pc_dimm_node(MemoryDeviceInfoList *list, ram_addr_t addr)
 {
     MemoryDeviceInfoList *info;
@@ -877,14 +626,51 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt)
     return ret;
 }
 
-static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt,
-                                SpaprOptionVector *ov5_updates)
+static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
 {
+    MachineState *machine = MACHINE(spapr);
     SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr);
-    int ret = 0, offset;
+    hwaddr mem_start, node_size;
+    int i, nb_nodes = machine->numa_state->num_nodes;
+    NodeInfo *nodes = machine->numa_state->nodes;
+
+    for (i = 0, mem_start = 0; i < nb_nodes; ++i) {
+        if (!nodes[i].node_mem) {
+            continue;
+        }
+        if (mem_start >= machine->ram_size) {
+            node_size = 0;
+        } else {
+            node_size = nodes[i].node_mem;
+            if (node_size > machine->ram_size - mem_start) {
+                node_size = machine->ram_size - mem_start;
+            }
+        }
+        if (!mem_start) {
+            /* spapr_machine_init() checks for rma_size <= node0_size
+             * already */
+            spapr_populate_memory_node(fdt, i, 0, spapr->rma_size);
+            mem_start += spapr->rma_size;
+            node_size -= spapr->rma_size;
+        }
+        for ( ; node_size; ) {
+            hwaddr sizetmp = pow2floor(node_size);
+
+            /* mem_start != 0 here */
+            if (ctzl(mem_start) < ctzl(sizetmp)) {
+                sizetmp = 1ULL << ctzl(mem_start);
+            }
+
+            spapr_populate_memory_node(fdt, i, mem_start, sizetmp);
+            node_size -= sizetmp;
+            mem_start += sizetmp;
+        }
+    }
 
     /* Generate ibm,dynamic-reconfiguration-memory node if required */
-    if (spapr_ovec_test(ov5_updates, OV5_DRCONF_MEMORY)) {
+    if (spapr_ovec_test(spapr->ov5_cas, OV5_DRCONF_MEMORY)) {
+        int ret;
+
         g_assert(smc->dr_lmb_enabled);
         ret = spapr_populate_drconf_memory(spapr, fdt);
         if (ret) {
@@ -892,6 +678,222 @@ static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt,
         }
     }
 
+    return 0;
+}
+
+static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
+                                  SpaprMachineState *spapr)
+{
+    MachineState *ms = MACHINE(spapr);
+    PowerPCCPU *cpu = POWERPC_CPU(cs);
+    CPUPPCState *env = &cpu->env;
+    PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cs);
+    int index = spapr_get_vcpu_id(cpu);
+    uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40),
+                       0xffffffff, 0xffffffff};
+    uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq()
+        : SPAPR_TIMEBASE_FREQ;
+    uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : 1000000000;
+    uint32_t page_sizes_prop[64];
+    size_t page_sizes_prop_size;
+    unsigned int smp_threads = ms->smp.threads;
+    uint32_t vcpus_per_socket = smp_threads * ms->smp.cores;
+    uint32_t pft_size_prop[] = {0, cpu_to_be32(spapr->htab_shift)};
+    int compat_smt = MIN(smp_threads, ppc_compat_max_vthreads(cpu));
+    SpaprDrc *drc;
+    int drc_index;
+    uint32_t radix_AP_encodings[PPC_PAGE_SIZES_MAX_SZ];
+    int i;
+
+    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index);
+    if (drc) {
+        drc_index = spapr_drc_index(drc);
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,my-drc-index", drc_index)));
+    }
+
+    _FDT((fdt_setprop_cell(fdt, offset, "reg", index)));
+    _FDT((fdt_setprop_string(fdt, offset, "device_type", "cpu")));
+
+    _FDT((fdt_setprop_cell(fdt, offset, "cpu-version", env->spr[SPR_PVR])));
+    _FDT((fdt_setprop_cell(fdt, offset, "d-cache-block-size",
+                           env->dcache_line_size)));
+    _FDT((fdt_setprop_cell(fdt, offset, "d-cache-line-size",
+                           env->dcache_line_size)));
+    _FDT((fdt_setprop_cell(fdt, offset, "i-cache-block-size",
+                           env->icache_line_size)));
+    _FDT((fdt_setprop_cell(fdt, offset, "i-cache-line-size",
+                           env->icache_line_size)));
+
+    if (pcc->l1_dcache_size) {
+        _FDT((fdt_setprop_cell(fdt, offset, "d-cache-size",
+                               pcc->l1_dcache_size)));
+    } else {
+        warn_report("Unknown L1 dcache size for cpu");
+    }
+    if (pcc->l1_icache_size) {
+        _FDT((fdt_setprop_cell(fdt, offset, "i-cache-size",
+                               pcc->l1_icache_size)));
+    } else {
+        warn_report("Unknown L1 icache size for cpu");
+    }
+
+    _FDT((fdt_setprop_cell(fdt, offset, "timebase-frequency", tbfreq)));
+    _FDT((fdt_setprop_cell(fdt, offset, "clock-frequency", cpufreq)));
+    _FDT((fdt_setprop_cell(fdt, offset, "slb-size", cpu->hash64_opts->slb_size)));
+    _FDT((fdt_setprop_cell(fdt, offset, "ibm,slb-size", cpu->hash64_opts->slb_size)));
+    _FDT((fdt_setprop_string(fdt, offset, "status", "okay")));
+    _FDT((fdt_setprop(fdt, offset, "64-bit", NULL, 0)));
+
+    if (env->spr_cb[SPR_PURR].oea_read) {
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,purr", 1)));
+    }
+    if (env->spr_cb[SPR_SPURR].oea_read) {
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,spurr", 1)));
+    }
+
+    if (ppc_hash64_has(cpu, PPC_HASH64_1TSEG)) {
+        _FDT((fdt_setprop(fdt, offset, "ibm,processor-segment-sizes",
+                          segs, sizeof(segs))));
+    }
+
+    /* Advertise VSX (vector extensions) if available
+     *   1               == VMX / Altivec available
+     *   2               == VSX available
+     *
+     * Only CPUs for which we create core types in spapr_cpu_core.c
+     * are possible, and all of those have VMX */
+    if (spapr_get_cap(spapr, SPAPR_CAP_VSX) != 0) {
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 2)));
+    } else {
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,vmx", 1)));
+    }
+
+    /* Advertise DFP (Decimal Floating Point) if available
+     *   0 / no property == no DFP
+     *   1               == DFP available */
+    if (spapr_get_cap(spapr, SPAPR_CAP_DFP) != 0) {
+        _FDT((fdt_setprop_cell(fdt, offset, "ibm,dfp", 1)));
+    }
+
+    page_sizes_prop_size = ppc_create_page_sizes_prop(cpu, page_sizes_prop,
+                                                      sizeof(page_sizes_prop));
+    if (page_sizes_prop_size) {
+        _FDT((fdt_setprop(fdt, offset, "ibm,segment-page-sizes",
+                          page_sizes_prop, page_sizes_prop_size)));
+    }
+
+    spapr_populate_pa_features(spapr, cpu, fdt, offset);
+
+    _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id",
+                           cs->cpu_index / vcpus_per_socket)));
+
+    _FDT((fdt_setprop(fdt, offset, "ibm,pft-size",
+                      pft_size_prop, sizeof(pft_size_prop))));
+
+    if (ms->numa_state->num_nodes > 1) {
+        _FDT(spapr_fixup_cpu_numa_dt(fdt, offset, cpu));
+    }
+
+    _FDT(spapr_fixup_cpu_smt_dt(fdt, offset, cpu, compat_smt));
+
+    if (pcc->radix_page_info) {
+        for (i = 0; i < pcc->radix_page_info->count; i++) {
+            radix_AP_encodings[i] =
+                cpu_to_be32(pcc->radix_page_info->entries[i]);
+        }
+        _FDT((fdt_setprop(fdt, offset, "ibm,processor-radix-AP-encodings",
+                          radix_AP_encodings,
+                          pcc->radix_page_info->count *
+                          sizeof(radix_AP_encodings[0]))));
+    }
+
+    /*
+     * We set this property to let the guest know that it can use the large
+     * decrementer and its width in bits.
+     */
+    if (spapr_get_cap(spapr, SPAPR_CAP_LARGE_DECREMENTER) != SPAPR_CAP_OFF)
+        _FDT((fdt_setprop_u32(fdt, offset, "ibm,dec-bits",
+                              pcc->lrg_decr_bits)));
+}
+
+static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr)
+{
+    CPUState **rev;
+    CPUState *cs;
+    int n_cpus;
+    int cpus_offset;
+    char *nodename;
+    int i;
+
+    cpus_offset = fdt_add_subnode(fdt, 0, "cpus");
+    _FDT(cpus_offset);
+    _FDT((fdt_setprop_cell(fdt, cpus_offset, "#address-cells", 0x1)));
+    _FDT((fdt_setprop_cell(fdt, cpus_offset, "#size-cells", 0x0)));
+
+    /*
+     * We walk the CPUs in reverse order to ensure that CPU DT nodes
+     * created by fdt_add_subnode() end up in the right order in FDT
+     * for the guest kernel the enumerate the CPUs correctly.
+     *
+     * The CPU list cannot be traversed in reverse order, so we need
+     * to do extra work.
+     */
+    n_cpus = 0;
+    rev = NULL;
+    CPU_FOREACH(cs) {
+        rev = g_renew(CPUState *, rev, n_cpus + 1);
+        rev[n_cpus++] = cs;
+    }
+
+    for (i = n_cpus - 1; i >= 0; i--) {
+        CPUState *cs = rev[i];
+        PowerPCCPU *cpu = POWERPC_CPU(cs);
+        int index = spapr_get_vcpu_id(cpu);
+        DeviceClass *dc = DEVICE_GET_CLASS(cs);
+        int offset;
+
+        if (!spapr_is_thread0_in_vcore(spapr, cpu)) {
+            continue;
+        }
+
+        nodename = g_strdup_printf("%s@%x", dc->fw_name, index);
+        offset = fdt_add_subnode(fdt, cpus_offset, nodename);
+        g_free(nodename);
+        _FDT(offset);
+        spapr_populate_cpu_dt(cs, fdt, offset, spapr);
+    }
+
+    g_free(rev);
+}
+
+static int spapr_rng_populate_dt(void *fdt)
+{
+    int node;
+    int ret;
+
+    node = qemu_fdt_add_subnode(fdt, "/ibm,platform-facilities");
+    if (node <= 0) {
+        return -1;
+    }
+    ret = fdt_setprop_string(fdt, node, "device_type",
+                             "ibm,platform-facilities");
+    ret |= fdt_setprop_cell(fdt, node, "#address-cells", 0x1);
+    ret |= fdt_setprop_cell(fdt, node, "#size-cells", 0x0);
+
+    node = fdt_add_subnode(fdt, node, "ibm,random-v1");
+    if (node <= 0) {
+        return -1;
+    }
+    ret |= fdt_setprop_string(fdt, node, "compatible", "ibm,random");
+
+    return ret ? -1 : 0;
+}
+
+static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt,
+                                SpaprOptionVector *ov5_updates)
+{
+    int offset;
+
     offset = fdt_path_offset(fdt, "/chosen");
     if (offset < 0) {
         offset = fdt_add_subnode(fdt, 0, "chosen");
-- 
2.24.1



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

* [PULL 35/45] spapr: Move creation of ibm,architecture-vec-5 property
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (33 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 34/45] spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 36/45] spapr: Rename DT functions to newer naming convention David Gibson
                   ` (12 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

This is currently called from spapr_dt_cas_updates() which is a hang
over from when we created this only as a diff to the DT at CAS time.
Now that we fully rebuild the DT at CAS time, just create it along
with the rest of the properties in /chosen.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr.c | 144 ++++++++++++++++++++++---------------------------
 1 file changed, 65 insertions(+), 79 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 5e938833f3..aff8c87fad 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -889,22 +889,6 @@ static int spapr_rng_populate_dt(void *fdt)
     return ret ? -1 : 0;
 }
 
-static int spapr_dt_cas_updates(SpaprMachineState *spapr, void *fdt,
-                                SpaprOptionVector *ov5_updates)
-{
-    int offset;
-
-    offset = fdt_path_offset(fdt, "/chosen");
-    if (offset < 0) {
-        offset = fdt_add_subnode(fdt, 0, "chosen");
-        if (offset < 0) {
-            return offset;
-        }
-    }
-    return spapr_ovec_populate_dt(fdt, offset, spapr->ov5_cas,
-                                  "ibm,architecture-vec-5");
-}
-
 static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt)
 {
     MachineState *ms = MACHINE(spapr);
@@ -1043,81 +1027,92 @@ static void spapr_dt_ov5_platform_support(SpaprMachineState *spapr, void *fdt,
                      val, sizeof(val)));
 }
 
-static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt)
+static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool reset)
 {
     MachineState *machine = MACHINE(spapr);
     SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(machine);
     int chosen;
-    const char *boot_device = machine->boot_order;
-    char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus);
-    size_t cb = 0;
-    char *bootlist = get_boot_devices_list(&cb);
 
     _FDT(chosen = fdt_add_subnode(fdt, 0, "chosen"));
 
-    if (machine->kernel_cmdline && machine->kernel_cmdline[0]) {
-        _FDT(fdt_setprop_string(fdt, chosen, "bootargs",
-                                machine->kernel_cmdline));
-    }
-    if (spapr->initrd_size) {
-        _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-start",
-                              spapr->initrd_base));
-        _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-end",
-                              spapr->initrd_base + spapr->initrd_size));
-    }
+    if (reset) {
+        const char *boot_device = machine->boot_order;
+        char *stdout_path = spapr_vio_stdout_path(spapr->vio_bus);
+        size_t cb = 0;
+        char *bootlist = get_boot_devices_list(&cb);
+
+        if (machine->kernel_cmdline && machine->kernel_cmdline[0]) {
+            _FDT(fdt_setprop_string(fdt, chosen, "bootargs",
+                                    machine->kernel_cmdline));
+        }
 
-    if (spapr->kernel_size) {
-        uint64_t kprop[2] = { cpu_to_be64(spapr->kernel_addr),
-                              cpu_to_be64(spapr->kernel_size) };
+        if (spapr->initrd_size) {
+            _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-start",
+                                  spapr->initrd_base));
+            _FDT(fdt_setprop_cell(fdt, chosen, "linux,initrd-end",
+                                  spapr->initrd_base + spapr->initrd_size));
+        }
+
+        if (spapr->kernel_size) {
+            uint64_t kprop[2] = { cpu_to_be64(spapr->kernel_addr),
+                                  cpu_to_be64(spapr->kernel_size) };
 
-        _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel",
+            _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel",
                          &kprop, sizeof(kprop)));
-        if (spapr->kernel_le) {
-            _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel-le", NULL, 0));
+            if (spapr->kernel_le) {
+                _FDT(fdt_setprop(fdt, chosen, "qemu,boot-kernel-le", NULL, 0));
+            }
         }
-    }
-    if (boot_menu) {
-        _FDT((fdt_setprop_cell(fdt, chosen, "qemu,boot-menu", boot_menu)));
-    }
-    _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-width", graphic_width));
-    _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-height", graphic_height));
-    _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-depth", graphic_depth));
+        if (boot_menu) {
+            _FDT((fdt_setprop_cell(fdt, chosen, "qemu,boot-menu", boot_menu)));
+        }
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-width", graphic_width));
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-height", graphic_height));
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-depth", graphic_depth));
 
-    if (cb && bootlist) {
-        int i;
+        if (cb && bootlist) {
+            int i;
 
-        for (i = 0; i < cb; i++) {
-            if (bootlist[i] == '\n') {
-                bootlist[i] = ' ';
+            for (i = 0; i < cb; i++) {
+                if (bootlist[i] == '\n') {
+                    bootlist[i] = ' ';
+                }
             }
+            _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-list", bootlist));
         }
-        _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-list", bootlist));
-    }
 
-    if (boot_device && strlen(boot_device)) {
-        _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_device));
-    }
+        if (boot_device && strlen(boot_device)) {
+            _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_device));
+        }
+
+        if (!spapr->has_graphics && stdout_path) {
+            /*
+             * "linux,stdout-path" and "stdout" properties are
+             * deprecated by linux kernel. New platforms should only
+             * use the "stdout-path" property. Set the new property
+             * and continue using older property to remain compatible
+             * with the existing firmware.
+             */
+            _FDT(fdt_setprop_string(fdt, chosen, "linux,stdout-path", stdout_path));
+            _FDT(fdt_setprop_string(fdt, chosen, "stdout-path", stdout_path));
+        }
 
-    if (!spapr->has_graphics && stdout_path) {
         /*
-         * "linux,stdout-path" and "stdout" properties are deprecated by linux
-         * kernel. New platforms should only use the "stdout-path" property. Set
-         * the new property and continue using older property to remain
-         * compatible with the existing firmware.
+         * We can deal with BAR reallocation just fine, advertise it
+         * to the guest
          */
-        _FDT(fdt_setprop_string(fdt, chosen, "linux,stdout-path", stdout_path));
-        _FDT(fdt_setprop_string(fdt, chosen, "stdout-path", stdout_path));
-    }
+        if (smc->linux_pci_probe) {
+            _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0));
+        }
 
-    /* We can deal with BAR reallocation just fine, advertise it to the guest */
-    if (smc->linux_pci_probe) {
-        _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0));
-    }
+        spapr_dt_ov5_platform_support(spapr, fdt, chosen);
 
-    spapr_dt_ov5_platform_support(spapr, fdt, chosen);
+        g_free(stdout_path);
+        g_free(bootlist);
+    }
 
-    g_free(stdout_path);
-    g_free(bootlist);
+    _FDT(spapr_ovec_populate_dt(fdt, chosen, spapr->ov5_cas,
+                                "ibm,architecture-vec-5"));
 }
 
 static void spapr_dt_hypervisor(SpaprMachineState *spapr, void *fdt)
@@ -1243,9 +1238,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
     spapr_dt_rtas(spapr, fdt);
 
     /* /chosen */
-    if (reset) {
-        spapr_dt_chosen(spapr, fdt);
-    }
+    spapr_dt_chosen(spapr, fdt, reset);
 
     /* /hypervisor */
     if (kvm_enabled()) {
@@ -1264,13 +1257,6 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
         }
     }
 
-    /* ibm,client-architecture-support updates */
-    ret = spapr_dt_cas_updates(spapr, fdt, spapr->ov5_cas);
-    if (ret < 0) {
-        error_report("couldn't setup CAS properties fdt");
-        exit(1);
-    }
-
     if (smc->dr_phb_enabled) {
         ret = spapr_dt_drc(fdt, 0, NULL, SPAPR_DR_CONNECTOR_TYPE_PHB);
         if (ret < 0) {
-- 
2.24.1



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

* [PULL 36/45] spapr: Rename DT functions to newer naming convention
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (34 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 35/45] spapr: Move creation of ibm,architecture-vec-5 property David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 37/45] ppc/spapr: Fix FWNMI machine check failure handling David Gibson
                   ` (11 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

In the spapr code we've been gradually moving towards a convention that
functions which create pieces of the device tree are called spapr_dt_*().
This patch speeds that along by renaming most of the things that don't yet
match that so that they do.

For now we leave the *_dt_populate() functions which are actual methods
used in the DRCClass::dt_populate method.

While we're there we remove a few comments that don't really say anything
useful.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
---
 hw/ppc/spapr.c              | 62 +++++++++++++++++--------------------
 hw/ppc/spapr_ovec.c         |  4 +--
 include/hw/ppc/spapr_ovec.h |  4 +--
 3 files changed, 33 insertions(+), 37 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index aff8c87fad..878ed3f719 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -217,10 +217,9 @@ static int spapr_fixup_cpu_numa_dt(void *fdt, int offset, PowerPCCPU *cpu)
                           sizeof(associativity));
 }
 
-/* Populate the "ibm,pa-features" property */
-static void spapr_populate_pa_features(SpaprMachineState *spapr,
-                                       PowerPCCPU *cpu,
-                                       void *fdt, int offset)
+static void spapr_dt_pa_features(SpaprMachineState *spapr,
+                                 PowerPCCPU *cpu,
+                                 void *fdt, int offset)
 {
     uint8_t pa_features_206[] = { 6, 0,
         0xf6, 0x1f, 0xc7, 0x00, 0x80, 0xc0 };
@@ -315,8 +314,8 @@ static void add_str(GString *s, const gchar *s1)
     g_string_append_len(s, s1, strlen(s1) + 1);
 }
 
-static int spapr_populate_memory_node(void *fdt, int nodeid, hwaddr start,
-                                       hwaddr size)
+static int spapr_dt_memory_node(void *fdt, int nodeid, hwaddr start,
+                                hwaddr size)
 {
     uint32_t associativity[] = {
         cpu_to_be32(0x4), /* length */
@@ -391,9 +390,8 @@ spapr_get_drconf_cell(uint32_t seq_lmbs, uint64_t base_addr,
     return elem;
 }
 
-/* ibm,dynamic-memory-v2 */
-static int spapr_populate_drmem_v2(SpaprMachineState *spapr, void *fdt,
-                                   int offset, MemoryDeviceInfoList *dimms)
+static int spapr_dt_dynamic_memory_v2(SpaprMachineState *spapr, void *fdt,
+                                      int offset, MemoryDeviceInfoList *dimms)
 {
     MachineState *machine = MACHINE(spapr);
     uint8_t *int_buf, *cur_index;
@@ -484,8 +482,7 @@ static int spapr_populate_drmem_v2(SpaprMachineState *spapr, void *fdt,
     return 0;
 }
 
-/* ibm,dynamic-memory */
-static int spapr_populate_drmem_v1(SpaprMachineState *spapr, void *fdt,
+static int spapr_dt_dynamic_memory(SpaprMachineState *spapr, void *fdt,
                                    int offset, MemoryDeviceInfoList *dimms)
 {
     MachineState *machine = MACHINE(spapr);
@@ -554,7 +551,8 @@ static int spapr_populate_drmem_v1(SpaprMachineState *spapr, void *fdt,
  * Refer to docs/specs/ppc-spapr-hotplug.txt for the documentation
  * of this device tree node.
  */
-static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt)
+static int spapr_dt_dynamic_reconfiguration_memory(SpaprMachineState *spapr,
+                                                   void *fdt)
 {
     MachineState *machine = MACHINE(spapr);
     int nb_numa_nodes = machine->numa_state->num_nodes;
@@ -593,9 +591,9 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt)
     /* ibm,dynamic-memory or ibm,dynamic-memory-v2 */
     dimms = qmp_memory_device_list();
     if (spapr_ovec_test(spapr->ov5_cas, OV5_DRMEM_V2)) {
-        ret = spapr_populate_drmem_v2(spapr, fdt, offset, dimms);
+        ret = spapr_dt_dynamic_memory_v2(spapr, fdt, offset, dimms);
     } else {
-        ret = spapr_populate_drmem_v1(spapr, fdt, offset, dimms);
+        ret = spapr_dt_dynamic_memory(spapr, fdt, offset, dimms);
     }
     qapi_free_MemoryDeviceInfoList(dimms);
 
@@ -626,7 +624,7 @@ static int spapr_populate_drconf_memory(SpaprMachineState *spapr, void *fdt)
     return ret;
 }
 
-static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
+static int spapr_dt_memory(SpaprMachineState *spapr, void *fdt)
 {
     MachineState *machine = MACHINE(spapr);
     SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr);
@@ -649,7 +647,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
         if (!mem_start) {
             /* spapr_machine_init() checks for rma_size <= node0_size
              * already */
-            spapr_populate_memory_node(fdt, i, 0, spapr->rma_size);
+            spapr_dt_memory_node(fdt, i, 0, spapr->rma_size);
             mem_start += spapr->rma_size;
             node_size -= spapr->rma_size;
         }
@@ -661,7 +659,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
                 sizetmp = 1ULL << ctzl(mem_start);
             }
 
-            spapr_populate_memory_node(fdt, i, mem_start, sizetmp);
+            spapr_dt_memory_node(fdt, i, mem_start, sizetmp);
             node_size -= sizetmp;
             mem_start += sizetmp;
         }
@@ -672,7 +670,7 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
         int ret;
 
         g_assert(smc->dr_lmb_enabled);
-        ret = spapr_populate_drconf_memory(spapr, fdt);
+        ret = spapr_dt_dynamic_reconfiguration_memory(spapr, fdt);
         if (ret) {
             return ret;
         }
@@ -681,8 +679,8 @@ static int spapr_populate_memory(SpaprMachineState *spapr, void *fdt)
     return 0;
 }
 
-static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
-                                  SpaprMachineState *spapr)
+static void spapr_dt_cpu(CPUState *cs, void *fdt, int offset,
+                         SpaprMachineState *spapr)
 {
     MachineState *ms = MACHINE(spapr);
     PowerPCCPU *cpu = POWERPC_CPU(cs);
@@ -782,7 +780,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
                           page_sizes_prop, page_sizes_prop_size)));
     }
 
-    spapr_populate_pa_features(spapr, cpu, fdt, offset);
+    spapr_dt_pa_features(spapr, cpu, fdt, offset);
 
     _FDT((fdt_setprop_cell(fdt, offset, "ibm,chip-id",
                            cs->cpu_index / vcpus_per_socket)));
@@ -816,7 +814,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void *fdt, int offset,
                               pcc->lrg_decr_bits)));
 }
 
-static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr)
+static void spapr_dt_cpus(void *fdt, SpaprMachineState *spapr)
 {
     CPUState **rev;
     CPUState *cs;
@@ -860,13 +858,13 @@ static void spapr_populate_cpus_dt_node(void *fdt, SpaprMachineState *spapr)
         offset = fdt_add_subnode(fdt, cpus_offset, nodename);
         g_free(nodename);
         _FDT(offset);
-        spapr_populate_cpu_dt(cs, fdt, offset, spapr);
+        spapr_dt_cpu(cs, fdt, offset, spapr);
     }
 
     g_free(rev);
 }
 
-static int spapr_rng_populate_dt(void *fdt)
+static int spapr_dt_rng(void *fdt)
 {
     int node;
     int ret;
@@ -1111,8 +1109,7 @@ static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool reset)
         g_free(bootlist);
     }
 
-    _FDT(spapr_ovec_populate_dt(fdt, chosen, spapr->ov5_cas,
-                                "ibm,architecture-vec-5"));
+    _FDT(spapr_dt_ovec(fdt, chosen, spapr->ov5_cas, "ibm,architecture-vec-5"));
 }
 
 static void spapr_dt_hypervisor(SpaprMachineState *spapr, void *fdt)
@@ -1190,7 +1187,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
     /* /interrupt controller */
     spapr_irq_dt(spapr, spapr_max_server_number(spapr), fdt, PHANDLE_INTC);
 
-    ret = spapr_populate_memory(spapr, fdt);
+    ret = spapr_dt_memory(spapr, fdt);
     if (ret < 0) {
         error_report("couldn't setup memory nodes in fdt");
         exit(1);
@@ -1200,7 +1197,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
     spapr_dt_vdevice(spapr->vio_bus, fdt);
 
     if (object_resolve_path_type("", TYPE_SPAPR_RNG, NULL)) {
-        ret = spapr_rng_populate_dt(fdt);
+        ret = spapr_dt_rng(fdt);
         if (ret < 0) {
             error_report("could not set up rng device in the fdt");
             exit(1);
@@ -1215,8 +1212,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
         }
     }
 
-    /* cpus */
-    spapr_populate_cpus_dt_node(fdt, spapr);
+    spapr_dt_cpus(fdt, spapr);
 
     if (smc->dr_lmb_enabled) {
         _FDT(spapr_dt_drc(fdt, 0, NULL, SPAPR_DR_CONNECTOR_TYPE_LMB));
@@ -3408,8 +3404,8 @@ int spapr_lmb_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr,
     addr = spapr_drc_index(drc) * SPAPR_MEMORY_BLOCK_SIZE;
     node = object_property_get_uint(OBJECT(drc->dev), PC_DIMM_NODE_PROP,
                                     &error_abort);
-    *fdt_start_offset = spapr_populate_memory_node(fdt, node, addr,
-                                                   SPAPR_MEMORY_BLOCK_SIZE);
+    *fdt_start_offset = spapr_dt_memory_node(fdt, node, addr,
+                                             SPAPR_MEMORY_BLOCK_SIZE);
     return 0;
 }
 
@@ -3810,7 +3806,7 @@ int spapr_core_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr,
     offset = fdt_add_subnode(fdt, 0, nodename);
     g_free(nodename);
 
-    spapr_populate_cpu_dt(cs, fdt, offset, spapr);
+    spapr_dt_cpu(cs, fdt, offset, spapr);
 
     *fdt_start_offset = offset;
     return 0;
diff --git a/hw/ppc/spapr_ovec.c b/hw/ppc/spapr_ovec.c
index 0ff6d1aeae..dd003f1763 100644
--- a/hw/ppc/spapr_ovec.c
+++ b/hw/ppc/spapr_ovec.c
@@ -200,8 +200,8 @@ SpaprOptionVector *spapr_ovec_parse_vector(target_ulong table_addr, int vector)
     return ov;
 }
 
-int spapr_ovec_populate_dt(void *fdt, int fdt_offset,
-                           SpaprOptionVector *ov, const char *name)
+int spapr_dt_ovec(void *fdt, int fdt_offset,
+                  SpaprOptionVector *ov, const char *name)
 {
     uint8_t vec[OV_MAXBYTES + 1];
     uint16_t vec_len;
diff --git a/include/hw/ppc/spapr_ovec.h b/include/hw/ppc/spapr_ovec.h
index 2bed517a2b..d4dee9e06a 100644
--- a/include/hw/ppc/spapr_ovec.h
+++ b/include/hw/ppc/spapr_ovec.h
@@ -72,8 +72,8 @@ void spapr_ovec_set(SpaprOptionVector *ov, long bitnr);
 void spapr_ovec_clear(SpaprOptionVector *ov, long bitnr);
 bool spapr_ovec_test(SpaprOptionVector *ov, long bitnr);
 SpaprOptionVector *spapr_ovec_parse_vector(target_ulong table_addr, int vector);
-int spapr_ovec_populate_dt(void *fdt, int fdt_offset,
-                           SpaprOptionVector *ov, const char *name);
+int spapr_dt_ovec(void *fdt, int fdt_offset,
+                  SpaprOptionVector *ov, const char *name);
 
 /* migration */
 extern const VMStateDescription vmstate_spapr_ovec;
-- 
2.24.1



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

* [PULL 37/45] ppc/spapr: Fix FWNMI machine check failure handling
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (35 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 36/45] spapr: Rename DT functions to newer naming convention David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 38/45] ppc/spapr: Change FWNMI names David Gibson
                   ` (10 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

ppc_cpu_do_system_reset delivers a system rreset interrupt to the guest,
which is certainly not what is intended here. Panic the guest like other
failure cases here do.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-2-npiggin@gmail.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_events.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 2afd1844e4..11303258d4 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -785,7 +785,6 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered,
 static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered)
 {
     SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine());
-    CPUState *cs = CPU(cpu);
     uint64_t rtas_addr;
     CPUPPCState *env = &cpu->env;
     PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
@@ -823,8 +822,7 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered)
     /* get rtas addr from fdt */
     rtas_addr = spapr_get_rtas_addr();
     if (!rtas_addr) {
-        /* Unable to fetch rtas_addr. Hence reset the guest */
-        ppc_cpu_do_system_reset(cs);
+        qemu_system_guest_panicked(NULL);
         g_free(ext_elog);
         return;
     }
-- 
2.24.1



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

* [PULL 38/45] ppc/spapr: Change FWNMI names
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (36 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 37/45] ppc/spapr: Fix FWNMI machine check failure handling David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 39/45] ppc/spapr: Add FWNMI System Reset state David Gibson
                   ` (9 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

The option is called "FWNMI", and it involves more than just machine
checks, also machine checks can be delivered without the FWNMI option,
so re-name various things to reflect that.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-3-npiggin@gmail.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c                    | 28 ++++++++++++++--------------
 hw/ppc/spapr_caps.c               | 14 +++++++-------
 hw/ppc/spapr_events.c             | 14 +++++++-------
 hw/ppc/spapr_rtas.c               | 17 +++++++++--------
 include/hw/ppc/spapr.h            | 27 +++++++++++++++++----------
 tests/qtest/libqos/libqos-spapr.h |  2 +-
 6 files changed, 55 insertions(+), 47 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 878ed3f719..822dea8118 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1688,11 +1688,11 @@ static void spapr_machine_reset(MachineState *machine)
 
     spapr->cas_reboot = false;
 
-    spapr->mc_status = -1;
-    spapr->guest_machine_check_addr = -1;
+    spapr->fwnmi_machine_check_addr = -1;
+    spapr->fwnmi_machine_check_interlock = -1;
 
     /* Signal all vCPUs waiting on this condition */
-    qemu_cond_broadcast(&spapr->mc_delivery_cond);
+    qemu_cond_broadcast(&spapr->fwnmi_machine_check_interlock_cond);
 
     migrate_del_blocker(spapr->fwnmi_migration_blocker);
 }
@@ -1981,7 +1981,7 @@ static bool spapr_fwnmi_needed(void *opaque)
 {
     SpaprMachineState *spapr = (SpaprMachineState *)opaque;
 
-    return spapr->guest_machine_check_addr != -1;
+    return spapr->fwnmi_machine_check_addr != -1;
 }
 
 static int spapr_fwnmi_pre_save(void *opaque)
@@ -1992,7 +1992,7 @@ static int spapr_fwnmi_pre_save(void *opaque)
      * Check if machine check handling is in progress and print a
      * warning message.
      */
-    if (spapr->mc_status != -1) {
+    if (spapr->fwnmi_machine_check_interlock != -1) {
         warn_report("A machine check is being handled during migration. The"
                 "handler may run and log hardware error on the destination");
     }
@@ -2000,15 +2000,15 @@ static int spapr_fwnmi_pre_save(void *opaque)
     return 0;
 }
 
-static const VMStateDescription vmstate_spapr_machine_check = {
-    .name = "spapr_machine_check",
+static const VMStateDescription vmstate_spapr_fwnmi = {
+    .name = "spapr_fwnmi",
     .version_id = 1,
     .minimum_version_id = 1,
     .needed = spapr_fwnmi_needed,
     .pre_save = spapr_fwnmi_pre_save,
     .fields = (VMStateField[]) {
-        VMSTATE_UINT64(guest_machine_check_addr, SpaprMachineState),
-        VMSTATE_INT32(mc_status, SpaprMachineState),
+        VMSTATE_UINT64(fwnmi_machine_check_addr, SpaprMachineState),
+        VMSTATE_INT32(fwnmi_machine_check_interlock, SpaprMachineState),
         VMSTATE_END_OF_LIST()
     },
 };
@@ -2047,7 +2047,7 @@ static const VMStateDescription vmstate_spapr = {
         &vmstate_spapr_cap_large_decr,
         &vmstate_spapr_cap_ccf_assist,
         &vmstate_spapr_cap_fwnmi,
-        &vmstate_spapr_machine_check,
+        &vmstate_spapr_fwnmi,
         NULL
     }
 };
@@ -2869,7 +2869,7 @@ static void spapr_machine_init(MachineState *machine)
         spapr_create_lmb_dr_connectors(spapr);
     }
 
-    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_ON) {
+    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_ON) {
         /* Create the error string for live migration blocker */
         error_setg(&spapr->fwnmi_migration_blocker,
             "A machine check is being handled during migration. The handler"
@@ -3038,7 +3038,7 @@ static void spapr_machine_init(MachineState *machine)
         kvmppc_spapr_enable_inkernel_multitce();
     }
 
-    qemu_cond_init(&spapr->mc_delivery_cond);
+    qemu_cond_init(&spapr->fwnmi_machine_check_interlock_cond);
 }
 
 static int spapr_kvm_type(MachineState *machine, const char *vm_type)
@@ -4519,7 +4519,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data)
     smc->default_caps.caps[SPAPR_CAP_NESTED_KVM_HV] = SPAPR_CAP_OFF;
     smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] = SPAPR_CAP_ON;
     smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_ON;
-    smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_ON;
+    smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_ON;
     spapr_caps_add_properties(smc, &error_abort);
     smc->irq = &spapr_irq_dual;
     smc->dr_phb_enabled = true;
@@ -4597,7 +4597,7 @@ static void spapr_machine_4_2_class_options(MachineClass *mc)
     spapr_machine_5_0_class_options(mc);
     compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len);
     smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_OFF;
-    smc->default_caps.caps[SPAPR_CAP_FWNMI_MCE] = SPAPR_CAP_OFF;
+    smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_OFF;
     smc->rma_limit = 16 * GiB;
     mc->nvdimm_supported = false;
 }
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index 8b27d3ac09..f626d769a0 100644
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -509,7 +509,7 @@ static void cap_ccf_assist_apply(SpaprMachineState *spapr, uint8_t val,
     }
 }
 
-static void cap_fwnmi_mce_apply(SpaprMachineState *spapr, uint8_t val,
+static void cap_fwnmi_apply(SpaprMachineState *spapr, uint8_t val,
                                 Error **errp)
 {
     if (!val) {
@@ -626,14 +626,14 @@ SpaprCapabilityInfo capability_table[SPAPR_CAP_NUM] = {
         .type = "bool",
         .apply = cap_ccf_assist_apply,
     },
-    [SPAPR_CAP_FWNMI_MCE] = {
-        .name = "fwnmi-mce",
-        .description = "Handle fwnmi machine check exceptions",
-        .index = SPAPR_CAP_FWNMI_MCE,
+    [SPAPR_CAP_FWNMI] = {
+        .name = "fwnmi",
+        .description = "Implements PAPR FWNMI option",
+        .index = SPAPR_CAP_FWNMI,
         .get = spapr_cap_get_bool,
         .set = spapr_cap_set_bool,
         .type = "bool",
-        .apply = cap_fwnmi_mce_apply,
+        .apply = cap_fwnmi_apply,
     },
 };
 
@@ -774,7 +774,7 @@ SPAPR_CAP_MIG_STATE(hpt_maxpagesize, SPAPR_CAP_HPT_MAXPAGESIZE);
 SPAPR_CAP_MIG_STATE(nested_kvm_hv, SPAPR_CAP_NESTED_KVM_HV);
 SPAPR_CAP_MIG_STATE(large_decr, SPAPR_CAP_LARGE_DECREMENTER);
 SPAPR_CAP_MIG_STATE(ccf_assist, SPAPR_CAP_CCF_ASSIST);
-SPAPR_CAP_MIG_STATE(fwnmi, SPAPR_CAP_FWNMI_MCE);
+SPAPR_CAP_MIG_STATE(fwnmi, SPAPR_CAP_FWNMI);
 
 void spapr_caps_init(SpaprMachineState *spapr)
 {
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 11303258d4..27ba8a2c19 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -837,7 +837,7 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered)
 
     env->gpr[3] = rtas_addr + RTAS_ERROR_LOG_OFFSET;
     env->msr = msr;
-    env->nip = spapr->guest_machine_check_addr;
+    env->nip = spapr->fwnmi_machine_check_addr;
 
     g_free(ext_elog);
 }
@@ -849,7 +849,7 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
     int ret;
     Error *local_err = NULL;
 
-    if (spapr->guest_machine_check_addr == -1) {
+    if (spapr->fwnmi_machine_check_addr == -1) {
         /*
          * This implies that we have hit a machine check either when the
          * guest has not registered FWNMI (i.e., "ibm,nmi-register" not
@@ -861,19 +861,19 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
         return;
     }
 
-    while (spapr->mc_status != -1) {
+    while (spapr->fwnmi_machine_check_interlock != -1) {
         /*
          * Check whether the same CPU got machine check error
          * while still handling the mc error (i.e., before
          * that CPU called "ibm,nmi-interlock")
          */
-        if (spapr->mc_status == cpu->vcpu_id) {
+        if (spapr->fwnmi_machine_check_interlock == cpu->vcpu_id) {
             qemu_system_guest_panicked(NULL);
             return;
         }
-        qemu_cond_wait_iothread(&spapr->mc_delivery_cond);
+        qemu_cond_wait_iothread(&spapr->fwnmi_machine_check_interlock_cond);
         /* Meanwhile if the system is reset, then just return */
-        if (spapr->guest_machine_check_addr == -1) {
+        if (spapr->fwnmi_machine_check_addr == -1) {
             return;
         }
     }
@@ -889,7 +889,7 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
         warn_report("Received a fwnmi while migration was in progress");
     }
 
-    spapr->mc_status = cpu->vcpu_id;
+    spapr->fwnmi_machine_check_interlock = cpu->vcpu_id;
     spapr_mce_dispatch_elog(cpu, recovered);
 }
 
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index fe83b50c66..0b8c481593 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -415,7 +415,7 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu,
 {
     hwaddr rtas_addr;
 
-    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_OFF) {
+    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) {
         rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED);
         return;
     }
@@ -426,7 +426,8 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu,
         return;
     }
 
-    spapr->guest_machine_check_addr = rtas_ld(args, 1);
+    spapr->fwnmi_machine_check_addr = rtas_ld(args, 1);
+
     rtas_st(rets, 0, RTAS_OUT_SUCCESS);
 }
 
@@ -436,18 +437,18 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu,
                                    target_ulong args,
                                    uint32_t nret, target_ulong rets)
 {
-    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI_MCE) == SPAPR_CAP_OFF) {
+    if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) {
         rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED);
         return;
     }
 
-    if (spapr->guest_machine_check_addr == -1) {
+    if (spapr->fwnmi_machine_check_addr == -1) {
         /* NMI register not called */
         rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR);
         return;
     }
 
-    if (spapr->mc_status != cpu->vcpu_id) {
+    if (spapr->fwnmi_machine_check_interlock != cpu->vcpu_id) {
         /* The vCPU that hit the NMI should invoke "ibm,nmi-interlock" */
         rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR);
         return;
@@ -455,10 +456,10 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu,
 
     /*
      * vCPU issuing "ibm,nmi-interlock" is done with NMI handling,
-     * hence unset mc_status.
+     * hence unset fwnmi_machine_check_interlock.
      */
-    spapr->mc_status = -1;
-    qemu_cond_signal(&spapr->mc_delivery_cond);
+    spapr->fwnmi_machine_check_interlock = -1;
+    qemu_cond_signal(&spapr->fwnmi_machine_check_interlock_cond);
     rtas_st(rets, 0, RTAS_OUT_SUCCESS);
     migrate_del_blocker(spapr->fwnmi_migration_blocker);
 }
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 35b489a549..64b83402cb 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -79,10 +79,10 @@ typedef enum {
 #define SPAPR_CAP_LARGE_DECREMENTER     0x08
 /* Count Cache Flush Assist HW Instruction */
 #define SPAPR_CAP_CCF_ASSIST            0x09
-/* FWNMI machine check handling */
-#define SPAPR_CAP_FWNMI_MCE             0x0A
+/* Implements PAPR FWNMI option */
+#define SPAPR_CAP_FWNMI                 0x0A
 /* Num Caps */
-#define SPAPR_CAP_NUM                   (SPAPR_CAP_FWNMI_MCE + 1)
+#define SPAPR_CAP_NUM                   (SPAPR_CAP_FWNMI + 1)
 
 /*
  * Capability Values
@@ -192,14 +192,21 @@ struct SpaprMachineState {
      * occurs during the unplug process. */
     QTAILQ_HEAD(, SpaprDimmState) pending_dimm_unplugs;
 
-    /* State related to "ibm,nmi-register" and "ibm,nmi-interlock" calls */
-    target_ulong guest_machine_check_addr;
-    /*
-     * mc_status is set to -1 if mc is not in progress, else is set to the CPU
-     * handling the mc.
+    /* State related to FWNMI option */
+
+    /* Machine Check Notification Routine address
+     * registered by "ibm,nmi-register" RTAS call.
+     */
+    target_ulong fwnmi_machine_check_addr;
+
+    /* Machine Check FWNMI synchronization, fwnmi_machine_check_interlock is
+     * set to -1 if a FWNMI machine check is not in progress, else is set to
+     * the CPU that was delivered the machine check, and is set back to -1
+     * when that CPU makes an "ibm,nmi-interlock" RTAS call. The cond is used
+     * to synchronize other CPUs.
      */
-    int mc_status;
-    QemuCond mc_delivery_cond;
+    int fwnmi_machine_check_interlock;
+    QemuCond fwnmi_machine_check_interlock_cond;
 
     /*< public >*/
     char *kvm_type;
diff --git a/tests/qtest/libqos/libqos-spapr.h b/tests/qtest/libqos/libqos-spapr.h
index d9c4c22343..16174dbada 100644
--- a/tests/qtest/libqos/libqos-spapr.h
+++ b/tests/qtest/libqos/libqos-spapr.h
@@ -13,6 +13,6 @@ void qtest_spapr_shutdown(QOSState *qs);
     "cap-sbbc=broken,"                           \
     "cap-ibs=broken,"                            \
     "cap-ccf-assist=off,"                        \
-    "cap-fwnmi-mce=off"
+    "cap-fwnmi=off"
 
 #endif
-- 
2.24.1



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

* [PULL 39/45] ppc/spapr: Add FWNMI System Reset state
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (37 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 38/45] ppc/spapr: Change FWNMI names David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 40/45] ppc/spapr: Fix FWNMI machine check interrupt delivery David Gibson
                   ` (8 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, Mahesh Salgaonkar, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

The FWNMI option must deliver system reset interrupts to their
registered address, and there are a few constraints on the handler
addresses specified in PAPR. Add the system reset address state and
checks.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-4-npiggin@gmail.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviwed-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c         |  2 ++
 hw/ppc/spapr_rtas.c    | 14 +++++++++++++-
 include/hw/ppc/spapr.h |  3 ++-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 822dea8118..d22bf54baf 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1688,6 +1688,7 @@ static void spapr_machine_reset(MachineState *machine)
 
     spapr->cas_reboot = false;
 
+    spapr->fwnmi_system_reset_addr = -1;
     spapr->fwnmi_machine_check_addr = -1;
     spapr->fwnmi_machine_check_interlock = -1;
 
@@ -2007,6 +2008,7 @@ static const VMStateDescription vmstate_spapr_fwnmi = {
     .needed = spapr_fwnmi_needed,
     .pre_save = spapr_fwnmi_pre_save,
     .fields = (VMStateField[]) {
+        VMSTATE_UINT64(fwnmi_system_reset_addr, SpaprMachineState),
         VMSTATE_UINT64(fwnmi_machine_check_addr, SpaprMachineState),
         VMSTATE_INT32(fwnmi_machine_check_interlock, SpaprMachineState),
         VMSTATE_END_OF_LIST()
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 0b8c481593..521e6b0b72 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -414,6 +414,7 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu,
                                   uint32_t nret, target_ulong rets)
 {
     hwaddr rtas_addr;
+    target_ulong sreset_addr, mce_addr;
 
     if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_OFF) {
         rtas_st(rets, 0, RTAS_OUT_NOT_SUPPORTED);
@@ -426,7 +427,18 @@ static void rtas_ibm_nmi_register(PowerPCCPU *cpu,
         return;
     }
 
-    spapr->fwnmi_machine_check_addr = rtas_ld(args, 1);
+    sreset_addr = rtas_ld(args, 0);
+    mce_addr = rtas_ld(args, 1);
+
+    /* PAPR requires these are in the first 32M of memory and within RMA */
+    if (sreset_addr >= 32 * MiB || sreset_addr >= spapr->rma_size ||
+           mce_addr >= 32 * MiB ||    mce_addr >= spapr->rma_size) {
+        rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR);
+        return;
+    }
+
+    spapr->fwnmi_system_reset_addr = sreset_addr;
+    spapr->fwnmi_machine_check_addr = mce_addr;
 
     rtas_st(rets, 0, RTAS_OUT_SUCCESS);
 }
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 64b83402cb..42d64a0368 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -194,9 +194,10 @@ struct SpaprMachineState {
 
     /* State related to FWNMI option */
 
-    /* Machine Check Notification Routine address
+    /* System Reset and Machine Check Notification Routine addresses
      * registered by "ibm,nmi-register" RTAS call.
      */
+    target_ulong fwnmi_system_reset_addr;
     target_ulong fwnmi_machine_check_addr;
 
     /* Machine Check FWNMI synchronization, fwnmi_machine_check_interlock is
-- 
2.24.1



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

* [PULL 40/45] ppc/spapr: Fix FWNMI machine check interrupt delivery
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (38 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 39/45] ppc/spapr: Add FWNMI System Reset state David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 41/45] ppc/spapr: Allow FWNMI on TCG David Gibson
                   ` (7 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

FWNMI machine check delivery misses a few things that will make it fail
with TCG at least (which we would like to allow in future to improve
testing).

It's not nice to scatter interrupt delivery logic around the tree, so
move it to excp_helper.c and share code where possible.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-5-npiggin@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_events.c    | 24 +++----------
 target/ppc/cpu.h         |  1 +
 target/ppc/excp_helper.c | 74 ++++++++++++++++++++++++++++------------
 3 files changed, 57 insertions(+), 42 deletions(-)

diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 27ba8a2c19..323fcef4aa 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -785,28 +785,13 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered,
 static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered)
 {
     SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine());
-    uint64_t rtas_addr;
+    CPUState *cs = CPU(cpu);
     CPUPPCState *env = &cpu->env;
-    PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
-    target_ulong msr = 0;
+    uint64_t rtas_addr;
     struct rtas_error_log log;
     struct mc_extended_log *ext_elog;
     uint32_t summary;
 
-    /*
-     * Properly set bits in MSR before we invoke the handler.
-     * SRR0/1, DAR and DSISR are properly set by KVM
-     */
-    if (!(*pcc->interrupts_big_endian)(cpu)) {
-        msr |= (1ULL << MSR_LE);
-    }
-
-    if (env->msr & (1ULL << MSR_SF)) {
-        msr |= (1ULL << MSR_SF);
-    }
-
-    msr |= (1ULL << MSR_ME);
-
     ext_elog = g_malloc0(sizeof(*ext_elog));
     summary = spapr_mce_get_elog_type(cpu, recovered, ext_elog);
 
@@ -834,12 +819,11 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, bool recovered)
     cpu_physical_memory_write(rtas_addr + RTAS_ERROR_LOG_OFFSET +
                               sizeof(env->gpr[3]) + sizeof(log), ext_elog,
                               sizeof(*ext_elog));
+    g_free(ext_elog);
 
     env->gpr[3] = rtas_addr + RTAS_ERROR_LOG_OFFSET;
-    env->msr = msr;
-    env->nip = spapr->fwnmi_machine_check_addr;
 
-    g_free(ext_elog);
+    ppc_cpu_do_fwnmi_machine_check(cs, spapr->fwnmi_machine_check_addr);
 }
 
 void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 5a55fb02bd..3953680534 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1221,6 +1221,7 @@ int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs,
                                int cpuid, void *opaque);
 #ifndef CONFIG_USER_ONLY
 void ppc_cpu_do_system_reset(CPUState *cs);
+void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector);
 extern const VMStateDescription vmstate_ppc_cpu;
 #endif
 
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 027f54c0ed..7f2b5899d3 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -128,6 +128,37 @@ static uint64_t ppc_excp_vector_offset(CPUState *cs, int ail)
     return offset;
 }
 
+static inline void powerpc_set_excp_state(PowerPCCPU *cpu,
+                                          target_ulong vector, target_ulong msr)
+{
+    CPUState *cs = CPU(cpu);
+    CPUPPCState *env = &cpu->env;
+
+    /*
+     * We don't use hreg_store_msr here as already have treated any
+     * special case that could occur. Just store MSR and update hflags
+     *
+     * Note: We *MUST* not use hreg_store_msr() as-is anyway because it
+     * will prevent setting of the HV bit which some exceptions might need
+     * to do.
+     */
+    env->msr = msr & env->msr_mask;
+    hreg_compute_hflags(env);
+    env->nip = vector;
+    /* Reset exception state */
+    cs->exception_index = POWERPC_EXCP_NONE;
+    env->error_code = 0;
+
+    /* Reset the reservation */
+    env->reserve_addr = -1;
+
+    /*
+     * Any interrupt is context synchronizing, check if TCG TLB needs
+     * a delayed flush on ppc64
+     */
+    check_tlb_flush(env, false);
+}
+
 /*
  * Note that this function should be greatly optimized when called
  * with a constant excp, from ppc_hw_interrupt
@@ -768,29 +799,8 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int excp_model, int excp)
         }
     }
 #endif
-    /*
-     * We don't use hreg_store_msr here as already have treated any
-     * special case that could occur. Just store MSR and update hflags
-     *
-     * Note: We *MUST* not use hreg_store_msr() as-is anyway because it
-     * will prevent setting of the HV bit which some exceptions might need
-     * to do.
-     */
-    env->msr = new_msr & env->msr_mask;
-    hreg_compute_hflags(env);
-    env->nip = vector;
-    /* Reset exception state */
-    cs->exception_index = POWERPC_EXCP_NONE;
-    env->error_code = 0;
 
-    /* Reset the reservation */
-    env->reserve_addr = -1;
-
-    /*
-     * Any interrupt is context synchronizing, check if TCG TLB needs
-     * a delayed flush on ppc64
-     */
-    check_tlb_flush(env, false);
+    powerpc_set_excp_state(cpu, vector, new_msr);
 }
 
 void ppc_cpu_do_interrupt(CPUState *cs)
@@ -958,6 +968,26 @@ void ppc_cpu_do_system_reset(CPUState *cs)
 
     powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_RESET);
 }
+
+void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector)
+{
+    PowerPCCPU *cpu = POWERPC_CPU(cs);
+    CPUPPCState *env = &cpu->env;
+    PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
+    target_ulong msr = 0;
+
+    /*
+     * Set MSR and NIP for the handler, SRR0/1, DAR and DSISR have already
+     * been set by KVM.
+     */
+    msr = (1ULL << MSR_ME);
+    msr |= env->msr & (1ULL << MSR_SF);
+    if (!(*pcc->interrupts_big_endian)(cpu)) {
+        msr |= (1ULL << MSR_LE);
+    }
+
+    powerpc_set_excp_state(cpu, vector, msr);
+}
 #endif /* !CONFIG_USER_ONLY */
 
 bool ppc_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
-- 
2.24.1



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

* [PULL 41/45] ppc/spapr: Allow FWNMI on TCG
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (39 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 40/45] ppc/spapr: Fix FWNMI machine check interrupt delivery David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 42/45] target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector David Gibson
                   ` (6 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

There should no longer be a reason to prevent TCG providing FWNMI.
System Reset interrupts are generated to the guest with nmi monitor
command and H_SIGNAL_SYS_RESET. Machine Checks can not be injected
currently, but this could be implemented with the mce monitor cmd
similarly to i386.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-6-npiggin@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
[dwg: Re-enable FWNMI in qtests, since that now works]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_caps.c               | 5 +----
 tests/qtest/libqos/libqos-spapr.h | 3 +--
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index f626d769a0..679ae7959f 100644
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -516,10 +516,7 @@ static void cap_fwnmi_apply(SpaprMachineState *spapr, uint8_t val,
         return; /* Disabled by default */
     }
 
-    if (tcg_enabled()) {
-        warn_report("Firmware Assisted Non-Maskable Interrupts(FWNMI) not "
-                    "supported in TCG");
-    } else if (kvm_enabled()) {
+    if (kvm_enabled()) {
         if (kvmppc_set_fwnmi() < 0) {
             error_setg(errp, "Firmware Assisted Non-Maskable Interrupts(FWNMI) "
                              "not supported by KVM");
diff --git a/tests/qtest/libqos/libqos-spapr.h b/tests/qtest/libqos/libqos-spapr.h
index 16174dbada..49bd72d20b 100644
--- a/tests/qtest/libqos/libqos-spapr.h
+++ b/tests/qtest/libqos/libqos-spapr.h
@@ -12,7 +12,6 @@ void qtest_spapr_shutdown(QOSState *qs);
     "cap-cfpc=broken,"                           \
     "cap-sbbc=broken,"                           \
     "cap-ibs=broken,"                            \
-    "cap-ccf-assist=off,"                        \
-    "cap-fwnmi=off"
+    "cap-ccf-assist=off,"
 
 #endif
-- 
2.24.1



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

* [PULL 42/45] target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (40 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 41/45] ppc/spapr: Allow FWNMI on TCG David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 43/45] ppc/spapr: Implement FWNMI System Reset delivery David Gibson
                   ` (5 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

Provide for an alternate delivery location, -1 defaults to the
architected address.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-7-npiggin@gmail.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c           | 2 +-
 target/ppc/cpu.h         | 2 +-
 target/ppc/excp_helper.c | 5 ++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index d22bf54baf..6d65c0797b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3385,7 +3385,7 @@ static void spapr_machine_finalizefn(Object *obj)
 void spapr_do_system_reset_on_cpu(CPUState *cs, run_on_cpu_data arg)
 {
     cpu_synchronize_state(cs);
-    ppc_cpu_do_system_reset(cs);
+    ppc_cpu_do_system_reset(cs, -1);
 }
 
 static void spapr_nmi(NMIState *n, int cpu_index, Error **errp)
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 3953680534..f8c7d6f19c 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1220,7 +1220,7 @@ int ppc64_cpu_write_elf64_note(WriteCoreDumpFunction f, CPUState *cs,
 int ppc32_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs,
                                int cpuid, void *opaque);
 #ifndef CONFIG_USER_ONLY
-void ppc_cpu_do_system_reset(CPUState *cs);
+void ppc_cpu_do_system_reset(CPUState *cs, target_ulong vector);
 void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector);
 extern const VMStateDescription vmstate_ppc_cpu;
 #endif
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 7f2b5899d3..08bc885ca6 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -961,12 +961,15 @@ static void ppc_hw_interrupt(CPUPPCState *env)
     }
 }
 
-void ppc_cpu_do_system_reset(CPUState *cs)
+void ppc_cpu_do_system_reset(CPUState *cs, target_ulong vector)
 {
     PowerPCCPU *cpu = POWERPC_CPU(cs);
     CPUPPCState *env = &cpu->env;
 
     powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_RESET);
+    if (vector != -1) {
+        env->nip = vector;
+    }
 }
 
 void ppc_cpu_do_fwnmi_machine_check(CPUState *cs, target_ulong vector)
-- 
2.24.1



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

* [PULL 43/45] ppc/spapr: Implement FWNMI System Reset delivery
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (41 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 42/45] target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 44/45] ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug David Gibson
                   ` (4 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

PAPR requires that if "ibm,nmi-register" succeeds, then the hypervisor
delivers all system reset and machine check exceptions to the registered
addresses.

System Resets are delivered with registers set to the architected state,
and with no interlock.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-8-npiggin@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c | 46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 6d65c0797b..8fcd21ac7b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -951,7 +951,29 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt)
     _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains",
                      maxdomains, sizeof(maxdomains)));
 
-    _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_SIZE));
+    /*
+     * FWNMI reserves RTAS_ERROR_LOG_MAX for the machine check error log,
+     * and 16 bytes per CPU for system reset error log plus an extra 8 bytes.
+     *
+     * The system reset requirements are driven by existing Linux and PowerVM
+     * implementation which (contrary to PAPR) saves r3 in the error log
+     * structure like machine check, so Linux expects to find the saved r3
+     * value at the address in r3 upon FWNMI-enabled sreset interrupt (and
+     * does not look at the error value).
+     *
+     * System reset interrupts are not subject to interlock like machine
+     * check, so this memory area could be corrupted if the sreset is
+     * interrupted by a machine check (or vice versa) if it was shared. To
+     * prevent this, system reset uses per-CPU areas for the sreset save
+     * area. A system reset that interrupts a system reset handler could
+     * still overwrite this area, but Linux doesn't try to recover in that
+     * case anyway.
+     *
+     * The extra 8 bytes is required because Linux's FWNMI error log check
+     * is off-by-one.
+     */
+    _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_ERROR_LOG_MAX +
+			  ms->smp.max_cpus * sizeof(uint64_t)*2 + sizeof(uint64_t)));
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max",
                           RTAS_ERROR_LOG_MAX));
     _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate",
@@ -3384,8 +3406,28 @@ static void spapr_machine_finalizefn(Object *obj)
 
 void spapr_do_system_reset_on_cpu(CPUState *cs, run_on_cpu_data arg)
 {
+    SpaprMachineState *spapr = SPAPR_MACHINE(qdev_get_machine());
+
     cpu_synchronize_state(cs);
-    ppc_cpu_do_system_reset(cs, -1);
+    /* If FWNMI is inactive, addr will be -1, which will deliver to 0x100 */
+    if (spapr->fwnmi_system_reset_addr != -1) {
+        uint64_t rtas_addr, addr;
+        PowerPCCPU *cpu = POWERPC_CPU(cs);
+        CPUPPCState *env = &cpu->env;
+
+        /* get rtas addr from fdt */
+        rtas_addr = spapr_get_rtas_addr();
+        if (!rtas_addr) {
+            qemu_system_guest_panicked(NULL);
+            return;
+        }
+
+        addr = rtas_addr + RTAS_ERROR_LOG_MAX + cs->cpu_index * sizeof(uint64_t)*2;
+        stq_be_phys(&address_space_memory, addr, env->gpr[3]);
+        stq_be_phys(&address_space_memory, addr + sizeof(uint64_t), 0);
+        env->gpr[3] = addr;
+    }
+    ppc_cpu_do_system_reset(cs, spapr->fwnmi_system_reset_addr);
 }
 
 static void spapr_nmi(NMIState *n, int cpu_index, Error **errp)
-- 
2.24.1



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

* [PULL 44/45] ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (42 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 43/45] ppc/spapr: Implement FWNMI System Reset delivery David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:04 ` [PULL 45/45] pseries: Update SLOF firmware image David Gibson
                   ` (3 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, Nicholas Piggin, qemu-devel, groug,
	qemu-ppc, clg, David Gibson

From: Nicholas Piggin <npiggin@gmail.com>

Linux kernels call "ibm,nmi-interlock" in their system reset handlers
contrary to PAPR. Returning an error because the CPU does not hold the
interlock here causes Linux to print warning messages. PowerVM returns
success in this case, so do the same for now.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20200316142613.121089-9-npiggin@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_rtas.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 521e6b0b72..9fb8c8632a 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -461,8 +461,18 @@ static void rtas_ibm_nmi_interlock(PowerPCCPU *cpu,
     }
 
     if (spapr->fwnmi_machine_check_interlock != cpu->vcpu_id) {
-        /* The vCPU that hit the NMI should invoke "ibm,nmi-interlock" */
-        rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR);
+        /*
+	 * The vCPU that hit the NMI should invoke "ibm,nmi-interlock"
+         * This should be PARAM_ERROR, but Linux calls "ibm,nmi-interlock"
+	 * for system reset interrupts, despite them not being interlocked.
+	 * PowerVM silently ignores this and returns success here. Returning
+	 * failure causes Linux to print the error "FWNMI: nmi-interlock
+	 * failed: -3", although no other apparent ill effects, this is a
+	 * regression for the user when enabling FWNMI. So for now, match
+	 * PowerVM. When most Linux clients are fixed, this could be
+	 * changed.
+	 */
+        rtas_st(rets, 0, RTAS_OUT_SUCCESS);
         return;
     }
 
-- 
2.24.1



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

* [PULL 45/45] pseries: Update SLOF firmware image
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (43 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 44/45] ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug David Gibson
@ 2020-03-17 10:04 ` David Gibson
  2020-03-17 10:30 ` [PULL 00/45] ppc-for-5.0 queue 20200317 Paolo Bonzini
                   ` (2 subsequent siblings)
  47 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-17 10:04 UTC (permalink / raw)
  To: peter.maydell
  Cc: lvivier, aik, mdroth, qemu-devel, groug, qemu-ppc, clg, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

The only change here is moving the decision about rtas-size
to QEMU.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 pc-bios/README   |   2 +-
 pc-bios/slof.bin | Bin 968848 -> 965008 bytes
 roms/SLOF        |   2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/README b/pc-bios/README
index bab0e8ec1a..f54c2743d0 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -14,7 +14,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/aik/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20200312.
+  built from git tag qemu-slof-20200317.
 
 - sgabios (the Serial Graphics Adapter option ROM) provides a means for
   legacy x86 software to communicate with an attached serial console as
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index b87353befa2ec0de2ef405dd1fd89c616f4f054e..40499a1451f4f63f79f64f2457ae62b08d7d66eb 100644
GIT binary patch
delta 150415
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
ZUcN@1oKzk@QJ7Tz)DJHC?mf>;|NrE`MR@=K

delta 149968
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
H^o#!=xlQEh

diff --git a/roms/SLOF b/roms/SLOF
index 8d4033d0d2..ab6984f5a6 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 8d4033d0d2e5b434fe14a81d5192cdb1911469e4
+Subproject commit ab6984f5a6d054e1f634dda855b32e5357111974
-- 
2.24.1



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

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (44 preceding siblings ...)
  2020-03-17 10:04 ` [PULL 45/45] pseries: Update SLOF firmware image David Gibson
@ 2020-03-17 10:30 ` Paolo Bonzini
  2020-03-17 22:33   ` David Gibson
  2020-03-17 11:24 ` no-reply
  2020-03-18 17:57 ` Peter Maydell
  47 siblings, 1 reply; 52+ messages in thread
From: Paolo Bonzini @ 2020-03-17 10:30 UTC (permalink / raw)
  To: David Gibson, peter.maydell
  Cc: lvivier, qemu-devel, aik, groug, mdroth, qemu-ppc, clg

On 17/03/20 11:03, David Gibson wrote:
>       pseries: Update SLOF firmware image
>       ppc/spapr: Move GPRs setup to one place
>       pseries: Update SLOF firmware image
>       spapr/rtas: Reserve space for RTAS blob and log
>       pseries: Update SLOF firmware image

Oh, no fake-OF patches?

Paolo

> Cédric Le Goater (1):
>       spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest
> 
> David Gibson (19):
>       ppc: Remove stub support for 32-bit hypervisor mode
>       ppc: Remove stub of PPC970 HID4 implementation
>       target/ppc: Correct handling of real mode accesses with vhyp on hash MMU
>       target/ppc: Introduce ppc_hash64_use_vrma() helper
>       spapr, ppc: Remove VPM0/RMLS hacks for POWER9
>       target/ppc: Remove RMOR register from POWER9 & POWER10
>       target/ppc: Use class fields to simplify LPCR masking
>       target/ppc: Streamline calculation of RMA limit from LPCR[RMLS]
>       target/ppc: Correct RMLS table
>       target/ppc: Only calculate RMLS derived RMA limit on demand
>       target/ppc: Don't store VRMA SLBE persistently
>       spapr: Don't use weird units for MIN_RMA_SLOF
>       spapr,ppc: Simplify signature of kvmppc_rma_size()
>       spapr: Don't attempt to clamp RMA to VRMA constraint
>       spapr: Don't clamp RMA to 16GiB on new machine types
>       spapr: Clean up RMA size calculation
>       spapr: Move creation of ibm,dynamic-reconfiguration-memory dt node
>       spapr: Move creation of ibm,architecture-vec-5 property
>       spapr: Rename DT functions to newer naming convention
> 
> Greg Kurz (2):
>       spapr: Handle pending hot plug/unplug requests at CAS
>       ppc: Officially deprecate the CPU "compat" property
> 
> Nicholas Piggin (8):
>       ppc/spapr: Fix FWNMI machine check failure handling
>       ppc/spapr: Change FWNMI names
>       ppc/spapr: Add FWNMI System Reset state
>       ppc/spapr: Fix FWNMI machine check interrupt delivery
>       ppc/spapr: Allow FWNMI on TCG
>       target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector
>       ppc/spapr: Implement FWNMI System Reset delivery
>       ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug
> 
> Philippe Mathieu-Daudé (8):
>       hw/ppc/pnv: Fix typo in comment
>       hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include
>       hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array
>       hw/scsi/spapr_vscsi: Simplify a bit
>       hw/scsi/spapr_vscsi: Introduce req_iu() helper
>       hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size
>       hw/scsi/spapr_vscsi: Prevent buffer overflow
>       hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event
> 
> Shivaprasad G Bhat (1):
>       spapr: Fix Coverity warning while validating nvdimm options
> 
> Vitaly Chikunov (1):
>       target/ppc: Fix rlwinm on ppc64
> 
>  docs/system/deprecated.rst        |   7 +
>  hw/intc/spapr_xive.c              |   4 +-
>  hw/ppc/pnv_lpc.c                  |   2 +-
>  hw/ppc/spapr.c                    | 980 ++++++++++++++++++++------------------
>  hw/ppc/spapr_caps.c               |  19 +-
>  hw/ppc/spapr_cpu_core.c           |  16 +-
>  hw/ppc/spapr_events.c             |  51 +-
>  hw/ppc/spapr_hcall.c              |  15 +-
>  hw/ppc/spapr_nvdimm.c             |   7 +-
>  hw/ppc/spapr_ovec.c               |   4 +-
>  hw/ppc/spapr_rtas.c               |  45 +-
>  hw/scsi/spapr_vscsi.c             |  72 +--
>  hw/scsi/trace-events              |   1 +
>  hw/scsi/viosrp.h                  |   3 +-
>  include/hw/ppc/spapr.h            |  34 +-
>  include/hw/ppc/spapr_cpu_core.h   |   4 +-
>  include/hw/ppc/spapr_ovec.h       |   4 +-
>  pc-bios/README                    |   2 +-
>  pc-bios/slof.bin                  | Bin 931032 -> 965008 bytes
>  roms/SLOF                         |   2 +-
>  target/ppc/cpu-qom.h              |   1 +
>  target/ppc/cpu.h                  |  28 +-
>  target/ppc/excp_helper.c          |  79 ++-
>  target/ppc/kvm.c                  |   5 +-
>  target/ppc/kvm_ppc.h              |   7 +-
>  target/ppc/mmu-hash64.c           | 319 +++++--------
>  target/ppc/translate.c            |  20 +-
>  target/ppc/translate_init.inc.c   | 116 ++---
>  tests/qtest/libqos/libqos-spapr.h |   3 +-
>  29 files changed, 930 insertions(+), 920 deletions(-)
> 



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

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (45 preceding siblings ...)
  2020-03-17 10:30 ` [PULL 00/45] ppc-for-5.0 queue 20200317 Paolo Bonzini
@ 2020-03-17 11:24 ` no-reply
  2020-03-18 17:57 ` Peter Maydell
  47 siblings, 0 replies; 52+ messages in thread
From: no-reply @ 2020-03-17 11:24 UTC (permalink / raw)
  To: david
  Cc: lvivier, peter.maydell, qemu-devel, aik, groug, mdroth, qemu-ppc,
	clg, david

Patchew URL: https://patchew.org/QEMU/20200317100423.622643-1-david@gibson.dropbear.id.au/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PULL 00/45] ppc-for-5.0 queue 20200317
Message-id: 20200317100423.622643-1-david@gibson.dropbear.id.au
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Switched to a new branch 'test'
1689eda pseries: Update SLOF firmware image
72735a9 ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug
47df6f1 ppc/spapr: Implement FWNMI System Reset delivery
f1fef1f target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector
3bd2159 ppc/spapr: Allow FWNMI on TCG
91debae ppc/spapr: Fix FWNMI machine check interrupt delivery
c9df752 ppc/spapr: Add FWNMI System Reset state
bed131f ppc/spapr: Change FWNMI names
b4a37dd ppc/spapr: Fix FWNMI machine check failure handling
6a32b19 spapr: Rename DT functions to newer naming convention
4e79406 spapr: Move creation of ibm,architecture-vec-5 property
21a3ae2 spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node
bf5265e spapr/rtas: Reserve space for RTAS blob and log
446dace pseries: Update SLOF firmware image
f5bb445 ppc/spapr: Move GPRs setup to one place
b824828 target/ppc: Fix rlwinm on ppc64
0e75479 spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest
397ec17 hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event
e8ff332 hw/scsi/spapr_vscsi: Prevent buffer overflow
7bde608 hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size
10ef238 hw/scsi/spapr_vscsi: Introduce req_iu() helper
06d1d9a hw/scsi/spapr_vscsi: Simplify a bit
89514b4 hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array
8cad997 hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include
684e72f spapr: Clean up RMA size calculation
4015194 spapr: Don't clamp RMA to 16GiB on new machine types
6ba055d spapr: Don't attempt to clamp RMA to VRMA constraint
37120d6 spapr,ppc: Simplify signature of kvmppc_rma_size()
ac722f8 spapr: Don't use weird units for MIN_RMA_SLOF
2c86473 target/ppc: Don't store VRMA SLBE persistently
2a4565f target/ppc: Only calculate RMLS derived RMA limit on demand
e6944cb target/ppc: Correct RMLS table
27bd1f5 target/ppc: Streamline calculation of RMA limit from LPCR[RMLS]
1d5b686 target/ppc: Use class fields to simplify LPCR masking
41f0aef target/ppc: Remove RMOR register from POWER9 & POWER10
f0bb56d spapr, ppc: Remove VPM0/RMLS hacks for POWER9
49d09fc target/ppc: Introduce ppc_hash64_use_vrma() helper
a604105 target/ppc: Correct handling of real mode accesses with vhyp on hash MMU
6fbdf8f ppc: Remove stub of PPC970 HID4 implementation
689d28f ppc: Remove stub support for 32-bit hypervisor mode
405c024 hw/ppc/pnv: Fix typo in comment
7532fbf spapr: Fix Coverity warning while validating nvdimm options
645463a ppc: Officially deprecate the CPU "compat" property
63c40f1 spapr: Handle pending hot plug/unplug requests at CAS
7d74e4f pseries: Update SLOF firmware image

=== OUTPUT BEGIN ===
1/45 Checking commit 7d74e4fe6d74 (pseries: Update SLOF firmware image)
2/45 Checking commit 63c40f1e53c0 (spapr: Handle pending hot plug/unplug requests at CAS)
3/45 Checking commit 645463ab9a98 (ppc: Officially deprecate the CPU "compat" property)
4/45 Checking commit 7532fbf9018e (spapr: Fix Coverity warning while validating nvdimm options)
5/45 Checking commit 405c024f407a (hw/ppc/pnv: Fix typo in comment)
6/45 Checking commit 689d28f975cf (ppc: Remove stub support for 32-bit hypervisor mode)
7/45 Checking commit 6fbdf8f49b17 (ppc: Remove stub of PPC970 HID4 implementation)
8/45 Checking commit a604105404be (target/ppc: Correct handling of real mode accesses with vhyp on hash MMU)
9/45 Checking commit 49d09fc795a5 (target/ppc: Introduce ppc_hash64_use_vrma() helper)
10/45 Checking commit f0bb56d30022 (spapr, ppc: Remove VPM0/RMLS hacks for POWER9)
11/45 Checking commit 41f0aefbf75e (target/ppc: Remove RMOR register from POWER9 & POWER10)
12/45 Checking commit 1d5b6860959d (target/ppc: Use class fields to simplify LPCR masking)
13/45 Checking commit 27bd1f5741a5 (target/ppc: Streamline calculation of RMA limit from LPCR[RMLS])
14/45 Checking commit e6944cbf3ed9 (target/ppc: Correct RMLS table)
15/45 Checking commit 2a4565fd1852 (target/ppc: Only calculate RMLS derived RMA limit on demand)
16/45 Checking commit 2c864739b507 (target/ppc: Don't store VRMA SLBE persistently)
17/45 Checking commit ac722f832dad (spapr: Don't use weird units for MIN_RMA_SLOF)
18/45 Checking commit 37120d691e31 (spapr,ppc: Simplify signature of kvmppc_rma_size())
19/45 Checking commit 6ba055dea62c (spapr: Don't attempt to clamp RMA to VRMA constraint)
20/45 Checking commit 40151945633e (spapr: Don't clamp RMA to 16GiB on new machine types)
21/45 Checking commit 684e72f277f7 (spapr: Clean up RMA size calculation)
22/45 Checking commit 8cad997dd4dd (hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include)
23/45 Checking commit 89514b40c11f (hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array)
24/45 Checking commit 06d1d9a3c12f (hw/scsi/spapr_vscsi: Simplify a bit)
25/45 Checking commit 10ef2385fe33 (hw/scsi/spapr_vscsi: Introduce req_iu() helper)
26/45 Checking commit 7bde6080932a (hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size)
27/45 Checking commit e8ff332d14ad (hw/scsi/spapr_vscsi: Prevent buffer overflow)
28/45 Checking commit 397ec17b6ad5 (hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event)
29/45 Checking commit 0e75479201cd (spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest)
30/45 Checking commit b824828a0f91 (target/ppc: Fix rlwinm on ppc64)
31/45 Checking commit f5bb44507880 (ppc/spapr: Move GPRs setup to one place)
32/45 Checking commit 446daceb3250 (pseries: Update SLOF firmware image)
33/45 Checking commit bf5265eafdbe (spapr/rtas: Reserve space for RTAS blob and log)
34/45 Checking commit 21a3ae278891 (spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node)
WARNING: Block comments use a leading /* on a separate line
#310: FILE: hw/ppc/spapr.c:650:
+            /* spapr_machine_init() checks for rma_size <= node0_size

WARNING: Block comments use a trailing */ on a separate line
#311: FILE: hw/ppc/spapr.c:651:
+             * already */

WARNING: line over 80 characters
#403: FILE: hw/ppc/spapr.c:742:
+    _FDT((fdt_setprop_cell(fdt, offset, "slb-size", cpu->hash64_opts->slb_size)));

WARNING: line over 80 characters
#404: FILE: hw/ppc/spapr.c:743:
+    _FDT((fdt_setprop_cell(fdt, offset, "ibm,slb-size", cpu->hash64_opts->slb_size)));

WARNING: Block comments use a leading /* on a separate line
#420: FILE: hw/ppc/spapr.c:759:
+    /* Advertise VSX (vector extensions) if available

WARNING: Block comments use a trailing */ on a separate line
#425: FILE: hw/ppc/spapr.c:764:
+     * are possible, and all of those have VMX */

WARNING: Block comments use a leading /* on a separate line
#432: FILE: hw/ppc/spapr.c:771:
+    /* Advertise DFP (Decimal Floating Point) if available

WARNING: Block comments use a trailing */ on a separate line
#434: FILE: hw/ppc/spapr.c:773:
+     *   1               == DFP available */

total: 0 errors, 8 warnings, 534 lines checked

Patch 34/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
35/45 Checking commit 4e794060fae1 (spapr: Move creation of ibm,architecture-vec-5 property)
WARNING: line over 80 characters
#123: FILE: hw/ppc/spapr.c:1069:
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-width", graphic_width));

WARNING: line over 80 characters
#124: FILE: hw/ppc/spapr.c:1070:
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-height", graphic_height));

WARNING: line over 80 characters
#125: FILE: hw/ppc/spapr.c:1071:
+        _FDT(fdt_setprop_cell(fdt, chosen, "qemu,graphic-depth", graphic_depth));

WARNING: line over 80 characters
#142: FILE: hw/ppc/spapr.c:1085:
+            _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_device));

WARNING: line over 80 characters
#153: FILE: hw/ppc/spapr.c:1096:
+            _FDT(fdt_setprop_string(fdt, chosen, "linux,stdout-path", stdout_path));

total: 0 errors, 5 warnings, 193 lines checked

Patch 35/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
36/45 Checking commit 6a32b195209c (spapr: Rename DT functions to newer naming convention)
37/45 Checking commit b4a37ddeedb7 (ppc/spapr: Fix FWNMI machine check failure handling)
38/45 Checking commit bed131fc204c (ppc/spapr: Change FWNMI names)
WARNING: Block comments use a leading /* on a separate line
#305: FILE: include/hw/ppc/spapr.h:197:
+    /* Machine Check Notification Routine address

WARNING: Block comments use a leading /* on a separate line
#312: FILE: include/hw/ppc/spapr.h:202:
+    /* Machine Check FWNMI synchronization, fwnmi_machine_check_interlock is

total: 0 errors, 2 warnings, 270 lines checked

Patch 38/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
39/45 Checking commit c9df752a19d8 (ppc/spapr: Add FWNMI System Reset state)
WARNING: Block comments use a leading /* on a separate line
#81: FILE: include/hw/ppc/spapr.h:197:
+    /* System Reset and Machine Check Notification Routine addresses

total: 0 errors, 1 warnings, 51 lines checked

Patch 39/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
40/45 Checking commit 91debae337f6 (ppc/spapr: Fix FWNMI machine check interrupt delivery)
41/45 Checking commit 3bd2159a5093 (ppc/spapr: Allow FWNMI on TCG)
42/45 Checking commit f1fef1fa71da (target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector)
43/45 Checking commit 47df6f1786f7 (ppc/spapr: Implement FWNMI System Reset delivery)
WARNING: line over 80 characters
#50: FILE: hw/ppc/spapr.c:976:
+                         ms->smp.max_cpus * sizeof(uint64_t)*2 + sizeof(uint64_t)));

ERROR: code indent should never use tabs
#50: FILE: hw/ppc/spapr.c:976:
+^I^I^I  ms->smp.max_cpus * sizeof(uint64_t)*2 + sizeof(uint64_t)));$

ERROR: spaces required around that '*' (ctx:VxV)
#50: FILE: hw/ppc/spapr.c:976:
+                         ms->smp.max_cpus * sizeof(uint64_t)*2 + sizeof(uint64_t)));
                                                             ^

WARNING: line over 80 characters
#75: FILE: hw/ppc/spapr.c:3425:
+        addr = rtas_addr + RTAS_ERROR_LOG_MAX + cs->cpu_index * sizeof(uint64_t)*2;

ERROR: spaces required around that '*' (ctx:VxV)
#75: FILE: hw/ppc/spapr.c:3425:
+        addr = rtas_addr + RTAS_ERROR_LOG_MAX + cs->cpu_index * sizeof(uint64_t)*2;
                                                                                 ^

total: 3 errors, 2 warnings, 59 lines checked

Patch 43/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

44/45 Checking commit 72735a9393da (ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug)
ERROR: code indent should never use tabs
#28: FILE: hw/ppc/spapr_rtas.c:465:
+^I * The vCPU that hit the NMI should invoke "ibm,nmi-interlock"$

ERROR: code indent should never use tabs
#30: FILE: hw/ppc/spapr_rtas.c:467:
+^I * for system reset interrupts, despite them not being interlocked.$

ERROR: code indent should never use tabs
#31: FILE: hw/ppc/spapr_rtas.c:468:
+^I * PowerVM silently ignores this and returns success here. Returning$

ERROR: code indent should never use tabs
#32: FILE: hw/ppc/spapr_rtas.c:469:
+^I * failure causes Linux to print the error "FWNMI: nmi-interlock$

ERROR: code indent should never use tabs
#33: FILE: hw/ppc/spapr_rtas.c:470:
+^I * failed: -3", although no other apparent ill effects, this is a$

ERROR: code indent should never use tabs
#34: FILE: hw/ppc/spapr_rtas.c:471:
+^I * regression for the user when enabling FWNMI. So for now, match$

ERROR: code indent should never use tabs
#35: FILE: hw/ppc/spapr_rtas.c:472:
+^I * PowerVM. When most Linux clients are fixed, this could be$

ERROR: code indent should never use tabs
#36: FILE: hw/ppc/spapr_rtas.c:473:
+^I * changed.$

ERROR: code indent should never use tabs
#37: FILE: hw/ppc/spapr_rtas.c:474:
+^I */$

total: 9 errors, 0 warnings, 20 lines checked

Patch 44/45 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

45/45 Checking commit 1689eda27bca (pseries: Update SLOF firmware image)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200317100423.622643-1-david@gibson.dropbear.id.au/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

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

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 10:30 ` [PULL 00/45] ppc-for-5.0 queue 20200317 Paolo Bonzini
@ 2020-03-17 22:33   ` David Gibson
  2020-03-17 23:58     ` Alexey Kardashevskiy
  0 siblings, 1 reply; 52+ messages in thread
From: David Gibson @ 2020-03-17 22:33 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: lvivier, peter.maydell, qemu-devel, aik, groug, mdroth, qemu-ppc, clg

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

On Tue, Mar 17, 2020 at 11:30:31AM +0100, Paolo Bonzini wrote:
> On 17/03/20 11:03, David Gibson wrote:
> >       pseries: Update SLOF firmware image
> >       ppc/spapr: Move GPRs setup to one place
> >       pseries: Update SLOF firmware image
> >       spapr/rtas: Reserve space for RTAS blob and log
> >       pseries: Update SLOF firmware image
> 
> Oh, no fake-OF patches?

Apart from some prelims that make sense on their own, no.

Not quite ready to go ahead with that, I'm afraid.

> 
> Paolo
> 
> > Cédric Le Goater (1):
> >       spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest
> > 
> > David Gibson (19):
> >       ppc: Remove stub support for 32-bit hypervisor mode
> >       ppc: Remove stub of PPC970 HID4 implementation
> >       target/ppc: Correct handling of real mode accesses with vhyp on hash MMU
> >       target/ppc: Introduce ppc_hash64_use_vrma() helper
> >       spapr, ppc: Remove VPM0/RMLS hacks for POWER9
> >       target/ppc: Remove RMOR register from POWER9 & POWER10
> >       target/ppc: Use class fields to simplify LPCR masking
> >       target/ppc: Streamline calculation of RMA limit from LPCR[RMLS]
> >       target/ppc: Correct RMLS table
> >       target/ppc: Only calculate RMLS derived RMA limit on demand
> >       target/ppc: Don't store VRMA SLBE persistently
> >       spapr: Don't use weird units for MIN_RMA_SLOF
> >       spapr,ppc: Simplify signature of kvmppc_rma_size()
> >       spapr: Don't attempt to clamp RMA to VRMA constraint
> >       spapr: Don't clamp RMA to 16GiB on new machine types
> >       spapr: Clean up RMA size calculation
> >       spapr: Move creation of ibm,dynamic-reconfiguration-memory dt node
> >       spapr: Move creation of ibm,architecture-vec-5 property
> >       spapr: Rename DT functions to newer naming convention
> > 
> > Greg Kurz (2):
> >       spapr: Handle pending hot plug/unplug requests at CAS
> >       ppc: Officially deprecate the CPU "compat" property
> > 
> > Nicholas Piggin (8):
> >       ppc/spapr: Fix FWNMI machine check failure handling
> >       ppc/spapr: Change FWNMI names
> >       ppc/spapr: Add FWNMI System Reset state
> >       ppc/spapr: Fix FWNMI machine check interrupt delivery
> >       ppc/spapr: Allow FWNMI on TCG
> >       target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector
> >       ppc/spapr: Implement FWNMI System Reset delivery
> >       ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug
> > 
> > Philippe Mathieu-Daudé (8):
> >       hw/ppc/pnv: Fix typo in comment
> >       hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include
> >       hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array
> >       hw/scsi/spapr_vscsi: Simplify a bit
> >       hw/scsi/spapr_vscsi: Introduce req_iu() helper
> >       hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size
> >       hw/scsi/spapr_vscsi: Prevent buffer overflow
> >       hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event
> > 
> > Shivaprasad G Bhat (1):
> >       spapr: Fix Coverity warning while validating nvdimm options
> > 
> > Vitaly Chikunov (1):
> >       target/ppc: Fix rlwinm on ppc64
> > 
> >  docs/system/deprecated.rst        |   7 +
> >  hw/intc/spapr_xive.c              |   4 +-
> >  hw/ppc/pnv_lpc.c                  |   2 +-
> >  hw/ppc/spapr.c                    | 980 ++++++++++++++++++++------------------
> >  hw/ppc/spapr_caps.c               |  19 +-
> >  hw/ppc/spapr_cpu_core.c           |  16 +-
> >  hw/ppc/spapr_events.c             |  51 +-
> >  hw/ppc/spapr_hcall.c              |  15 +-
> >  hw/ppc/spapr_nvdimm.c             |   7 +-
> >  hw/ppc/spapr_ovec.c               |   4 +-
> >  hw/ppc/spapr_rtas.c               |  45 +-
> >  hw/scsi/spapr_vscsi.c             |  72 +--
> >  hw/scsi/trace-events              |   1 +
> >  hw/scsi/viosrp.h                  |   3 +-
> >  include/hw/ppc/spapr.h            |  34 +-
> >  include/hw/ppc/spapr_cpu_core.h   |   4 +-
> >  include/hw/ppc/spapr_ovec.h       |   4 +-
> >  pc-bios/README                    |   2 +-
> >  pc-bios/slof.bin                  | Bin 931032 -> 965008 bytes
> >  roms/SLOF                         |   2 +-
> >  target/ppc/cpu-qom.h              |   1 +
> >  target/ppc/cpu.h                  |  28 +-
> >  target/ppc/excp_helper.c          |  79 ++-
> >  target/ppc/kvm.c                  |   5 +-
> >  target/ppc/kvm_ppc.h              |   7 +-
> >  target/ppc/mmu-hash64.c           | 319 +++++--------
> >  target/ppc/translate.c            |  20 +-
> >  target/ppc/translate_init.inc.c   | 116 ++---
> >  tests/qtest/libqos/libqos-spapr.h |   3 +-
> >  29 files changed, 930 insertions(+), 920 deletions(-)
> > 
> 

-- 
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] 52+ messages in thread

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 22:33   ` David Gibson
@ 2020-03-17 23:58     ` Alexey Kardashevskiy
  2020-03-18  5:46       ` David Gibson
  0 siblings, 1 reply; 52+ messages in thread
From: Alexey Kardashevskiy @ 2020-03-17 23:58 UTC (permalink / raw)
  To: David Gibson, Paolo Bonzini
  Cc: lvivier, peter.maydell, qemu-devel, groug, mdroth, qemu-ppc, clg



On 18/03/2020 09:33, David Gibson wrote:
> On Tue, Mar 17, 2020 at 11:30:31AM +0100, Paolo Bonzini wrote:
>> On 17/03/20 11:03, David Gibson wrote:
>>>       pseries: Update SLOF firmware image
>>>       ppc/spapr: Move GPRs setup to one place
>>>       pseries: Update SLOF firmware image
>>>       spapr/rtas: Reserve space for RTAS blob and log
>>>       pseries: Update SLOF firmware image
>>
>> Oh, no fake-OF patches?
> 
> Apart from some prelims that make sense on their own, no.
> 
> Not quite ready to go ahead with that, I'm afraid.

You reviewed and found problems or you did not have time for that?
Either is fine, just curious.



-- 
Alexey


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

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 23:58     ` Alexey Kardashevskiy
@ 2020-03-18  5:46       ` David Gibson
  0 siblings, 0 replies; 52+ messages in thread
From: David Gibson @ 2020-03-18  5:46 UTC (permalink / raw)
  To: Alexey Kardashevskiy
  Cc: lvivier, peter.maydell, mdroth, qemu-devel, groug, qemu-ppc, clg,
	Paolo Bonzini

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

On Wed, Mar 18, 2020 at 10:58:46AM +1100, Alexey Kardashevskiy wrote:
> 
> 
> On 18/03/2020 09:33, David Gibson wrote:
> > On Tue, Mar 17, 2020 at 11:30:31AM +0100, Paolo Bonzini wrote:
> >> On 17/03/20 11:03, David Gibson wrote:
> >>>       pseries: Update SLOF firmware image
> >>>       ppc/spapr: Move GPRs setup to one place
> >>>       pseries: Update SLOF firmware image
> >>>       spapr/rtas: Reserve space for RTAS blob and log
> >>>       pseries: Update SLOF firmware image
> >>
> >> Oh, no fake-OF patches?
> > 
> > Apart from some prelims that make sense on their own, no.
> > 
> > Not quite ready to go ahead with that, I'm afraid.
> 
> You reviewed and found problems or you did not have time for that?
> Either is fine, just curious.

Mostly the second.  It's not just the time to actually review the
patches, either.  Paolo made some good points about what it's safe to
move into qemu proper.  That means I need to thoroughly rethink where
I really want to go with these SLOF removal ideas, and I haven't had
time to do that.

-- 
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] 52+ messages in thread

* Re: [PULL 00/45] ppc-for-5.0 queue 20200317
  2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
                   ` (46 preceding siblings ...)
  2020-03-17 11:24 ` no-reply
@ 2020-03-18 17:57 ` Peter Maydell
  47 siblings, 0 replies; 52+ messages in thread
From: Peter Maydell @ 2020-03-18 17:57 UTC (permalink / raw)
  To: David Gibson
  Cc: Laurent Vivier, Alexey Kardashevskiy, Michael Roth,
	QEMU Developers, Greg Kurz, qemu-ppc, Cédric Le Goater

On Tue, 17 Mar 2020 at 10:04, David Gibson <david@gibson.dropbear.id.au> wrote:
>
> The following changes since commit a98135f727595382e200d04c2996e868b7925a01:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200316-pull-request' into staging (2020-03-16 14:55:59 +0000)
>
> are available in the Git repository at:
>
>   git://github.com/dgibson/qemu.git tags/ppc-for-5.0-20200317
>
> for you to fetch changes up to 6961eae79f58385482775dc0a6c3d553f633662d:
>
>   pseries: Update SLOF firmware image (2020-03-17 17:00:22 +1100)
>
> ----------------------------------------------------------------
> ppc patch queue 2020-03-17
>
> Here's my final pull request for the qemu-5.0 soft freeze.  Sorry this
> is just under the wire - I hit some last minute problems that took a
> while to fix up and retest.
>
> Highlights are:
>  * Numerous fixes for the FWNMI feature
>  * A handful of cleanups to the device tree construction code
>  * Numerous fixes for the spapr-vscsi device
>  * A number of fixes and cleanups for real mode (MMU off) softmmu
>    handling
>  * Fixes for handling of the PAPR RMA
>  * Better handling of hotplug/unplug events during boot
>  * Assorted other fixes
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.0
for any user-visible changes.

-- PMM


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

end of thread, other threads:[~2020-03-18 17:58 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-17 10:03 [PULL 00/45] ppc-for-5.0 queue 20200317 David Gibson
2020-03-17 10:03 ` [PULL 01/45] pseries: Update SLOF firmware image David Gibson
2020-03-17 10:03 ` [PULL 02/45] spapr: Handle pending hot plug/unplug requests at CAS David Gibson
2020-03-17 10:03 ` [PULL 03/45] ppc: Officially deprecate the CPU "compat" property David Gibson
2020-03-17 10:03 ` [PULL 04/45] spapr: Fix Coverity warning while validating nvdimm options David Gibson
2020-03-17 10:03 ` [PULL 05/45] hw/ppc/pnv: Fix typo in comment David Gibson
2020-03-17 10:03 ` [PULL 06/45] ppc: Remove stub support for 32-bit hypervisor mode David Gibson
2020-03-17 10:03 ` [PULL 07/45] ppc: Remove stub of PPC970 HID4 implementation David Gibson
2020-03-17 10:03 ` [PULL 08/45] target/ppc: Correct handling of real mode accesses with vhyp on hash MMU David Gibson
2020-03-17 10:03 ` [PULL 09/45] target/ppc: Introduce ppc_hash64_use_vrma() helper David Gibson
2020-03-17 10:03 ` [PULL 10/45] spapr, ppc: Remove VPM0/RMLS hacks for POWER9 David Gibson
2020-03-17 10:03 ` [PULL 11/45] target/ppc: Remove RMOR register from POWER9 & POWER10 David Gibson
2020-03-17 10:03 ` [PULL 12/45] target/ppc: Use class fields to simplify LPCR masking David Gibson
2020-03-17 10:03 ` [PULL 13/45] target/ppc: Streamline calculation of RMA limit from LPCR[RMLS] David Gibson
2020-03-17 10:03 ` [PULL 14/45] target/ppc: Correct RMLS table David Gibson
2020-03-17 10:03 ` [PULL 15/45] target/ppc: Only calculate RMLS derived RMA limit on demand David Gibson
2020-03-17 10:03 ` [PULL 16/45] target/ppc: Don't store VRMA SLBE persistently David Gibson
2020-03-17 10:03 ` [PULL 17/45] spapr: Don't use weird units for MIN_RMA_SLOF David Gibson
2020-03-17 10:03 ` [PULL 18/45] spapr,ppc: Simplify signature of kvmppc_rma_size() David Gibson
2020-03-17 10:03 ` [PULL 19/45] spapr: Don't attempt to clamp RMA to VRMA constraint David Gibson
2020-03-17 10:03 ` [PULL 20/45] spapr: Don't clamp RMA to 16GiB on new machine types David Gibson
2020-03-17 10:03 ` [PULL 21/45] spapr: Clean up RMA size calculation David Gibson
2020-03-17 10:04 ` [PULL 22/45] hw/scsi/viosrp: Add missing 'hw/scsi/srp.h' include David Gibson
2020-03-17 10:04 ` [PULL 23/45] hw/scsi/spapr_vscsi: Use SRP_MAX_IU_LEN instead of sizeof flexible array David Gibson
2020-03-17 10:04 ` [PULL 24/45] hw/scsi/spapr_vscsi: Simplify a bit David Gibson
2020-03-17 10:04 ` [PULL 25/45] hw/scsi/spapr_vscsi: Introduce req_iu() helper David Gibson
2020-03-17 10:04 ` [PULL 26/45] hw/scsi/spapr_vscsi: Do not mix SRP IU size with DMA buffer size David Gibson
2020-03-17 10:04 ` [PULL 27/45] hw/scsi/spapr_vscsi: Prevent buffer overflow David Gibson
2020-03-17 10:04 ` [PULL 28/45] hw/scsi/spapr_vscsi: Convert debug fprintf() to trace event David Gibson
2020-03-17 10:04 ` [PULL 29/45] spapr/xive: use SPAPR_IRQ_IPI to define IPI ranges exposed to the guest David Gibson
2020-03-17 10:04 ` [PULL 30/45] target/ppc: Fix rlwinm on ppc64 David Gibson
2020-03-17 10:04 ` [PULL 31/45] ppc/spapr: Move GPRs setup to one place David Gibson
2020-03-17 10:04 ` [PULL 32/45] pseries: Update SLOF firmware image David Gibson
2020-03-17 10:04 ` [PULL 33/45] spapr/rtas: Reserve space for RTAS blob and log David Gibson
2020-03-17 10:04 ` [PULL 34/45] spapr: Move creation of ibm, dynamic-reconfiguration-memory dt node David Gibson
2020-03-17 10:04 ` [PULL 35/45] spapr: Move creation of ibm,architecture-vec-5 property David Gibson
2020-03-17 10:04 ` [PULL 36/45] spapr: Rename DT functions to newer naming convention David Gibson
2020-03-17 10:04 ` [PULL 37/45] ppc/spapr: Fix FWNMI machine check failure handling David Gibson
2020-03-17 10:04 ` [PULL 38/45] ppc/spapr: Change FWNMI names David Gibson
2020-03-17 10:04 ` [PULL 39/45] ppc/spapr: Add FWNMI System Reset state David Gibson
2020-03-17 10:04 ` [PULL 40/45] ppc/spapr: Fix FWNMI machine check interrupt delivery David Gibson
2020-03-17 10:04 ` [PULL 41/45] ppc/spapr: Allow FWNMI on TCG David Gibson
2020-03-17 10:04 ` [PULL 42/45] target/ppc: allow ppc_cpu_do_system_reset to take an alternate vector David Gibson
2020-03-17 10:04 ` [PULL 43/45] ppc/spapr: Implement FWNMI System Reset delivery David Gibson
2020-03-17 10:04 ` [PULL 44/45] ppc/spapr: Ignore common "ibm,nmi-interlock" Linux bug David Gibson
2020-03-17 10:04 ` [PULL 45/45] pseries: Update SLOF firmware image David Gibson
2020-03-17 10:30 ` [PULL 00/45] ppc-for-5.0 queue 20200317 Paolo Bonzini
2020-03-17 22:33   ` David Gibson
2020-03-17 23:58     ` Alexey Kardashevskiy
2020-03-18  5:46       ` David Gibson
2020-03-17 11:24 ` no-reply
2020-03-18 17:57 ` Peter Maydell

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.