[PATCH 0/2] Fix for compat mode in P9 < 2.2

Fabiano Rosas posted 2 patches 2 years, 11 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210505001130.3999968-1-farosas@linux.ibm.com
Maintainers: Greg Kurz <groug@kaod.org>, David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c         | 17 +++++++++++++++++
hw/ppc/spapr_hcall.c   | 14 ++------------
include/hw/ppc/spapr.h |  1 +
3 files changed, 20 insertions(+), 12 deletions(-)
[PATCH 0/2] Fix for compat mode in P9 < 2.2
Posted by Fabiano Rosas 2 years, 11 months ago
We dropped support in KVM for mixing MMU modes in machines that have
old POWER9 processors which don't support mixing. As usual I forgot
that compat mode exists:

  $ lscpu | grep pvr
  Model:               2.1 (pvr 004e 1201)

  $ ~/qemu-system-ppc64 -machine pseries,accel=kvm,max-cpu-compat=power8 ...
  error: kvm run failed Invalid argument
  NIP 0000000000000100   LR 0000000000000000 CTR 0000000000000000 XER 0000000000000000 CPU#0
  MSR 8000000000001000 HID0 0000000000000000  HF 8000000000000000 iidx 3 didx 3
  TB 00000000 00000000 DECR 0
  GPR00 0000000000000000 0000000000000000 0000000000000000 000000007ff00000
  GPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  CR 00000000  [ -  -  -  -  -  -  -  -  ]             RES ffffffffffffffff
   SRR0 0000000000000000  SRR1 0000000000000000    PVR 00000000004e1201 VRSAVE 0000000000000000
  SPRG0 0000000000000000 SPRG1 0000000000000000  SPRG2 0000000000000000  SPRG3 0000000000000000
  SPRG4 0000000000000000 SPRG5 0000000000000000  SPRG6 0000000000000000  SPRG7 0000000000000000
  HSRR0 0000000000000000 HSRR1 0000000000000000
   CFAR 0000000000000000
   LPCR 000000000004f01f
   PTCR 0000000000000000   DAR 0000000000000000  DSISR 0000000000000000

This series reuses some code we already have to abort and print a
proper message if the chosen MMU mode is not supported by the host.

Fabiano Rosas (2):
  hw/ppc/spapr.c: Extract MMU mode error reporting into a function
  hw/ppc/spapr.c: Make sure the host supports the selected MMU mode

 hw/ppc/spapr.c         | 17 +++++++++++++++++
 hw/ppc/spapr_hcall.c   | 14 ++------------
 include/hw/ppc/spapr.h |  1 +
 3 files changed, 20 insertions(+), 12 deletions(-)

--
2.29.2