qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] c10aaa: tests: Fix up docker cross builds for


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] c10aaa: tests: Fix up docker cross builds for ppc64 (BE) t...
Date: Thu, 30 May 2019 08:32:35 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c10aaaab0fcfaf7ad68ccbc07a9069d7f6310532
      
https://github.com/qemu/qemu/commit/c10aaaab0fcfaf7ad68ccbc07a9069d7f6310532
  Author: David Gibson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M tests/docker/Makefile.include
    A tests/docker/dockerfiles/debian-ppc64-cross.docker
    M tests/tcg/ppc/Makefile.include

  Log Message:
  -----------
  tests: Fix up docker cross builds for ppc64 (BE) targets

We currently have docker cross building targets for powerpc (32-bit, BE)
and ppc64el (64-bit, LE), but not for pcp64 (64-bit, BE).  This is an
irritating gap in make check-tcg coverage so correct it.

Signed-off-by: David Gibson <address@hidden>


  Commit: f8378accda78acdc601f228254e2a41b4531621b
      
https://github.com/qemu/qemu/commit/f8378accda78acdc601f228254e2a41b4531621b
  Author: Richard Henderson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Distinguish ppc64 and ppc64le hosts

We cannot use the ppc64le host compiler to build ppc64(be) guest code.
Clean up confusion between cross_cc_powerpc and cross_cc_ppc; make use
of the cflags variable as well.

Signed-off-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
[dwg: Dropped hunk relating to ppc64abi32, it doesn't test properly]
Signed-off-by: David Gibson <address@hidden>


  Commit: 3ff1075ab614d488c3cc3730a6d0d3c08f1965c4
      
https://github.com/qemu/qemu/commit/3ff1075ab614d488c3cc3730a6d0d3c08f1965c4
  Author: Richard Henderson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Use quotes around uses of $CPU_CFLAGS

About half of the values to which CPU_CFLAGS is set
have multiple space separated arguments.

Signed-off-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 228152c27e7085fec1cc8c86259a5e21ee5c7f89
      
https://github.com/qemu/qemu/commit/228152c27e7085fec1cc8c86259a5e21ee5c7f89
  Author: Boxuan Li <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/kvm.c
    M target/ppc/trace-events

  Log Message:
  -----------
  target/ppc/kvm: Fix trace typo

Signed-off-by: Boxuan Li <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: c50be9e1ec705512c622366f80861436eafacffa
      
https://github.com/qemu/qemu/commit/c50be9e1ec705512c622366f80861436eafacffa
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/prep.c

  Log Message:
  -----------
  hw/ppc/prep: use TYPE_MC146818_RTC instead of a hardcoded string

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 2e8f85189d477e1009e13235ef73c86834664571
      
https://github.com/qemu/qemu/commit/2e8f85189d477e1009e13235ef73c86834664571
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/isa/i82378.c
    M hw/ppc/prep.c

  Log Message:
  -----------
  hw/ppc/40p: Move the MC146818 RTC to the board where it belongs

The MC146818 RTC was incorrectly added to the i82378 chipset in
commit a04ff940974a. In the next commit (506b7ddf8893) the PReP
machine use the i82378.
Since the MC146818 is specific to the PReP machine, move its use
there.

Fixes: a04ff940974a
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 1dbe3d196d81da45df9f17d6959871c08bdb9dac
      
https://github.com/qemu/qemu/commit/1dbe3d196d81da45df9f17d6959871c08bdb9dac
  Author: Artyom Tarasenko <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/prep.c

  Log Message:
  -----------
  hw/ppc/40p: use 1900 as a base year

AIX 5.1 expects the base year to be 1900. Adjust accordingly.

Signed-off-by: Artyom Tarasenko <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 83f192d34d2525f9c0053c2179bdbc69327b9158
      
https://github.com/qemu/qemu/commit/83f192d34d2525f9c0053c2179bdbc69327b9158
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  target/ppc: Add ibm,purr and ibm,spurr device-tree properties

The ibm,purr and ibm,spurr device tree properties are used to indicate
that the processor implements the Processor Utilisation of Resources
Register (PURR) and Scaled Processor Utilisation of Resources Registers
(SPURR), respectively. Each property has a single value which represents
the level of architecture supported. A value of 1 for ibm,purr means
support for the version of the PURR defined in book 3 in version 2.02 of
the architecture. A value of 1 for ibm,spurr means support for the
version of the SPURR defined in version 2.05 of the architecture.

Add these properties for all processors for which the PURR and SPURR
registers are generated.

Fixes: 0da6f3fef9a "spapr: Reorganize CPU dt generation code"
Signed-off-by: Suraj Jitindar Singh <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: cf4e9363f7fd889d8d804c8f78e8927782c2aa48
      
https://github.com/qemu/qemu/commit/cf4e9363f7fd889d8d804c8f78e8927782c2aa48
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/translate/vsx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Fix xvxsigdp

Fix a typo in xvxsigdp where we put both results into the lower
doubleword.

Fixes: dd977e4f45cb ("target/ppc: Optimize x[sv]xsigdp using deposit_i64()")
Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: d47a751adab7833e9831408376077bc8dba41d5d
      
https://github.com/qemu/qemu/commit/d47a751adab7833e9831408376077bc8dba41d5d
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/translate/vsx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Fix xxbrq, xxbrw

Fix a typo in xxbrq and xxbrw where we put both results into the lower
doubleword.

Fixes: 8b3b2d75c7c0 ("introduce get_cpu_vsr{l,h}() and set_cpu_vsr{l,h}() 
helpers for VSR register access")
Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 63be02fc69d44442dc7eb316d44f1c1fbe49c075
      
https://github.com/qemu/qemu/commit/63be02fc69d44442dc7eb316d44f1c1fbe49c075
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/int_helper.c

  Log Message:
  -----------
  target/ppc: Fix vslv and vsrv

vslv and vsrv are broken on little endian, we append 00 to the
high byte not the low byte. Fix it by using the VsrB() accessor.

Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 7fa0ddc1d63806769d1b6246a62708d3bde39037
      
https://github.com/qemu/qemu/commit/7fa0ddc1d63806769d1b6246a62708d3bde39037
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/int_helper.c

  Log Message:
  -----------
  target/ppc: Fix vsum2sws

A recent cleanup changed the pre zeroing of the result from 64 bit
to 32 bit operations:

-        result.u64[i] = 0;
+        result.VsrW(i) = 0;

This corrupts the result.

Fixes: 60594fea298d ("target/ppc: remove various HOST_WORDS_BIGENDIAN hacks in 
int_helper.c")
Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 4c406ca7345e874f16110734907af970c968d727
      
https://github.com/qemu/qemu/commit/4c406ca7345e874f16110734907af970c968d727
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/translate/vsx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Fix xxspltib

xxspltib raises a VMX or a VSX exception depending on the register
set it is operating on. We had a check, but it was backwards.

Fixes: f113283525a4 ("target-ppc: add xxspltib instruction")
Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 7f9136f90dd2675c4cee29eed447f9213f94f3e6
      
https://github.com/qemu/qemu/commit/7f9136f90dd2675c4cee29eed447f9213f94f3e6
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c

  Log Message:
  -----------
  spapr/xive: EQ page should be naturally aligned

When the OS configures the EQ page in which to receive event
notifications from the XIVE interrupt controller, the page should be
naturally aligned. Add this check.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
[dwg: Minor change for printf warning on some platforms]
Signed-off-by: David Gibson <address@hidden>


  Commit: 13df93244efbd4bb8b4cf4e26104a26033178674
      
https://github.com/qemu/qemu/commit/13df93244efbd4bb8b4cf4e26104a26033178674
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/xive.c
    M include/hw/ppc/xive_regs.h

  Log Message:
  -----------
  spapr/xive: fix EQ page addresses above 64GB

The high order bits of the address of the OS event queue is stored in
bits [4-31] of word2 of the XIVE END internal structures and the low
order bits in word3. This structure is using Big Endian ordering and
computing the value requires some simple arithmetic which happens to
be wrong. The mask removing bits [0-3] of word2 is applied to the
wrong value and the resulting address is bogus when above 64GB.

Guests with more than 64GB of RAM will allocate pages for the OS event
queues which will reside above the 64GB limit. In this case, the XIVE
device model will wake up the CPUs in case of a notification, such as
IPIs, but the update of the event queue will be written at the wrong
place in memory. The result is uncertain as the guest memory is
trashed and IPI are not delivered.

Introduce a helper xive_end_qaddr() to compute this value correctly in
all places where it is used.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: fb2e8b5132fa592753e330b2675093e907265cdc
      
https://github.com/qemu/qemu/commit/fb2e8b5132fa592753e330b2675093e907265cdc
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c

  Log Message:
  -----------
  spapr/xive: print out the EQ page address in the monitor

This proved to be a useful information when debugging issues with OS
event queues allocated above 64GB.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: f81d69fcea571af19de01377d2b474a675f573d6
      
https://github.com/qemu/qemu/commit/f81d69fcea571af19de01377d2b474a675f573d6
  Author: Satheesh Rajendran <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c

  Log Message:
  -----------
  Fix typo on "info pic" monitor cmd output for xive

Instead of LISN i.e "Logical Interrupt Source Number" as per
Xive PAPR document "info pic" prints as LSIN, let's fix it.

Signed-off-by: Satheesh Rajendran <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Reviewed-by: Stefano Garzarella <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: e04c5dd139a319a97d50e29c0a84b5c630e6e740
      
https://github.com/qemu/qemu/commit/e04c5dd139a319a97d50e29c0a84b5c630e6e740
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/translate/vsx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Optimise VSX_LOAD_SCALAR_DS and VSX_VECTOR_LOAD_STORE

A few small optimisations:

In VSX_LOAD_SCALAR_DS() we can don't need to read the VSR via
get_cpu_vsrh().

Split VSX_VECTOR_LOAD_STORE() into two functions. Loads only need to
write the VSRs (set_cpu_vsr*()) and stores only need to read the VSRs
(get_cpu_vsr*())

Thanks to Mark Cave-Ayland for the suggestions.

Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 77bd8937c03dd55e57cc257951ad07c185303c3e
      
https://github.com/qemu/qemu/commit/77bd8937c03dd55e57cc257951ad07c185303c3e
  Author: Anton Blanchard <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/translate/vsx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Fix xvabs[sd]p, xvnabs[sd]p, xvneg[sd]p, xvcpsgn[sd]p

We were using set_cpu_vsr*() when we should have used get_cpu_vsr*().

Fixes: 8b3b2d75c7c0 ("introduce get_cpu_vsr{l,h}() and set_cpu_vsr{l,h}() 
helpers for VSR register access")
Signed-off-by: Anton Blanchard <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: e7f78db9fbb18900c724fd8ebfc46b6962203b98
      
https://github.com/qemu/qemu/commit/e7f78db9fbb18900c724fd8ebfc46b6962203b98
  Author: Greg Kurz <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr_hcall.c

  Log Message:
  -----------
  spapr/xive: Sanity checks of OV5 during CAS

If a machine is started with ic-mode=xive but the guest only knows
about XICS, eg. an RHEL 7.6 guest, the kernel panics. This is
expected but a bit unfortunate since the crash doesn't provide
much information for the end user to guess what's happening.

Detect that during CAS and exit QEMU with a proper error message
instead, like it is already done for the MMU.

Even if this is less likely to happen, the opposite case of a guest
that only knows about XIVE would certainly fail all the same if the
machine is started with ic-mode=xics.

Also, the only valid values a guest can pass in byte 23 of OV5 during
CAS are 0b00 (XIVE legacy mode) and 0b01 (XIVE exploitation mode). Any
other value is a bug, at least with the current spec. Again, it does
not seem right to let the guest go on without a precise idea of the
interrupt mode it asked for.

Handle these cases as well.

Reported-by: Satheesh Rajendran <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 70de096748dc0243b9c6aec5458b3ff270fe13e6
      
https://github.com/qemu/qemu/commit/70de096748dc0243b9c6aec5458b3ff270fe13e6
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_rtas.c

  Log Message:
  -----------
  target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup

The processor stop status and control register (PSSCR) is used to
control the power saving facilities of the thread. The exit criterion
bit (EC) is used to specify whether the thread should be woken by any
interrupt (EC == 0) or only an interrupt enabled in the LPCR to wake the
thread (EC == 1).

The rtas facilities start-cpu and self-stop are used to transition a
vcpu between the stopped and running states. When a vcpu is stopped it
may only be started again by the start-cpu rtas call.

Currently a vcpu in the stopped state will start again whenever an
interrupt comes along due to PSSCR_EC being cleared, and while this is
architecturally correct for a hardware thread, a vcpu is expected to
only be woken by calling start-cpu. This means when performing a reboot
on a tcg machine that the secondary threads will restart while the
primary is still in slof, this is unsupported and causes call traces
like:

SLOF **********************************************************************
QEMU Starting
 Build Date = Jan 14 2019 18:00:39
 FW Version = git-a5b428e1c1eae703
 Press "s" to enter Open Firmware.

qemu: fatal: Trying to deliver HV exception (MSR) 70 with no HV support

NIP 6d61676963313230   LR 000000003dbe0308 CTR 6d61676963313233 XER 
0000000000000000 CPU#1
MSR 0000000000000000 HID0 0000000000000000  HF 0000000000000000 iidx 3 didx 3
TB 00000026 115746031956 DECR 18446744073326238463
GPR00 000000003dbe0308 000000003e669fe0 000000003dc10700 0000000000000003
GPR04 000000003dc62198 000000003dc62178 000000003dc0ea48 0000000000000030
GPR08 000000003dc621a8 0000000000000018 000000003e466008 000000003dc50700
GPR12 c00000000093a4e0 c00000003ffff300 c00000003e533f90 0000000000000000
GPR16 0000000000000000 0000000000000000 000000003e466010 000000003dc0b040
GPR20 0000000000008000 000000000000f003 0000000000000006 000000003e66a050
GPR24 000000003dc06400 000000003dc0ae70 0000000000000003 000000000000f001
GPR28 000000003e66a060 ffffffffffffffff 6d61676963313233 0000000000000028
CR 28000222  [ E  L  -  -  -  E  E  E  ]             RES ffffffffffffffff
FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR08 0000000000000000 0000000000000000 0000000000000000 00000000311825e0
FPR12 00000000311825e0 0000000000000000 0000000000000000 0000000000000000
FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPSCR 0000000000000000
 SRR0 000000003dbe06b0  SRR1 0000000000080000    PVR 00000000004e1200 VRSAVE 
0000000000000000
SPRG0 000000003dbe0308 SPRG1 000000003e669fe0  SPRG2 00000000000000d8  SPRG3 
000000003dbe0308
SPRG4 0000000000000000 SPRG5 0000000000000000  SPRG6 0000000000000000  SPRG7 
0000000000000000
HSRR0 6d61676963313230 HSRR1 0000000000000000
 CFAR 000000003dbe3e64
 LPCR 0000000004020008
 PTCR 0000000000000000   DAR 0000000000000000  DSISR 0000000000000000
Aborted (core dumped)

To fix this, set the PSSCR_EC bit when a vcpu is stopped to disable it
from coming back online until the start-cpu rtas call is made.

Fixes: 21c0d66a9c99 ("target/ppc: Fix support for "STOP light" states on 
POWER9")

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 64d4a53431733fe9d50e94a5a33b15d151f7f8e9
      
https://github.com/qemu/qemu/commit/64d4a53431733fe9d50e94a5a33b15d151f7f8e9
  Author: David Gibson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Add forgotten capability to migration stream

spapr machine capabilities are supposed to be sent in the migration stream
so that we can sanity check the source and destination have compatible
configuration.  Unfortunately, when we added the hpt-max-page-size
capability, we forgot to add it to the migration state.  This means that we
can generate spurious warnings when both ends are configured for large
pages, or potentially fail to warn if the source is configured for huge
pages, but the destination is not.

Fixes: 2309832afda "spapr: Maximum (HPT) pagesize property"

Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>


  Commit: 571fbe6ccd7a159789e5d473e2837d45764197ec
      
https://github.com/qemu/qemu/commit/571fbe6ccd7a159789e5d473e2837d45764197ec
  Author: Richard Henderson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M target/ppc/helper.h
    M target/ppc/int_helper.c
    M target/ppc/translate/vmx-impl.inc.c

  Log Message:
  -----------
  target/ppc: Use vector variable shifts for VSL, VSR, VSRA

The gvec expanders take care of masking the shift amount
against the element width.

Signed-off-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: eb3cba827294e2c128cd484f423da648fada8f68
      
https://github.com/qemu/qemu/commit/eb3cba827294e2c128cd484f423da648fada8f68
  Author: David Gibson <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: Fix phb_placement backwards compatibility

When we added support for NVLink2 passthrough devices, we changed the
phb_placement hook to handle the placement of NVLink2 bridges' specific
resources.  For compatibility we use a version that doesn't do this
allocation  for old machine types.

However, because of the delay between when the patch was posted and when
it was merged, we ended up with that compatibility hook applying for
machine versions 3.1 and earlier whereas it should apply for 4.0 and
earlier (since the patch was applied early in the 4.1 tree).

Fixes: ec132efaa81 "spapr: Support NVIDIA V100 GPU with NVLink2"

Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>


  Commit: 75de59416df857b429f1aac028855090c69f2ea9
      
https://github.com/qemu/qemu/commit/75de59416df857b429f1aac028855090c69f2ea9
  Author: Greg Kurz <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr_hcall.c

  Log Message:
  -----------
  spapr: Print out extra hints when CAS negotiation of interrupt mode fails

Let's suggest to the user how the machine should be configured to allow
the guest to boot successfully.

Suggested-by: Satheesh Rajendran <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Satheesh Rajendran <address@hidden>
Tested-by: Satheesh Rajendran <address@hidden>
[dwg: Adjusted for style error]
Signed-off-by: David Gibson <address@hidden>


  Commit: 38afd772f802ff787ea16af73b0c0d24a8c46b6c
      
https://github.com/qemu/qemu/commit/38afd772f802ff787ea16af73b0c0d24a8c46b6c
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/Makefile.objs
    M hw/intc/spapr_xive.c
    A hw/intc/spapr_xive_kvm.c
    M hw/intc/xive.c
    M hw/ppc/Kconfig
    M hw/ppc/spapr_irq.c
    M include/hw/ppc/spapr_xive.h
    M include/hw/ppc/xive.h
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h

  Log Message:
  -----------
  spapr/xive: add KVM support

This introduces a set of helpers when KVM is in use, which create the
KVM XIVE device, initialize the interrupt sources at a KVM level and
connect the interrupt presenters to the vCPU.

They also handle the initialization of the TIMA and the source ESB
memory regions of the controller. These have a different type under
KVM. They are 'ram device' memory mappings, similarly to VFIO, exposed
to the guest and the associated VMAs on the host are populated
dynamically with the appropriate pages using a fault handler.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 0c575703e487b6e36d226b67e0c8d08c004ce998
      
https://github.com/qemu/qemu/commit/0c575703e487b6e36d226b67e0c8d08c004ce998
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/spapr_xive_kvm.c
    M include/hw/ppc/spapr_xive.h

  Log Message:
  -----------
  spapr/xive: add hcall support when under KVM

XIVE hcalls are all redirected to QEMU as none are on a fast path.
When necessary, QEMU invokes KVM through specific ioctls to perform
host operations. QEMU should have done the necessary checks before
calling KVM and, in case of failure, H_HARDWARE is simply returned.

H_INT_ESB is a special case that could have been handled under KVM
but the impact on performance was low when under QEMU. Here are some
figures :

    kernel irqchip      OFF          ON
    H_INT_ESB                    KVM   QEMU

    rtl8139 (LSI )      1.19     1.24  1.23  Gbits/sec
    virtio             31.80    42.30   --   Gbits/sec

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 7bfc759c02b8d19fd76d70d138deea0025f6f461
      
https://github.com/qemu/qemu/commit/7bfc759c02b8d19fd76d70d138deea0025f6f461
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/spapr_xive_kvm.c
    M hw/intc/xive.c
    M include/hw/ppc/spapr_xive.h
    M include/hw/ppc/xive.h

  Log Message:
  -----------
  spapr/xive: add state synchronization with KVM

This extends the KVM XIVE device backend with 'synchronize_state'
methods used to retrieve the state from KVM. The HW state of the
sources, the KVM device and the thread interrupt contexts are
collected for the monitor usage and also migration.

These get operations rely on their KVM counterpart in the host kernel
which acts as a proxy for OPAL, the host firmware. The set operations
will be added for migration support later.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 9b88cd7673dddf9336f50540e5735eb6f190200a
      
https://github.com/qemu/qemu/commit/9b88cd7673dddf9336f50540e5735eb6f190200a
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive_kvm.c
    M include/hw/ppc/spapr_xive.h

  Log Message:
  -----------
  spapr/xive: introduce a VM state change handler

This handler is in charge of stabilizing the flow of event notifications
in the XIVE controller before migrating a guest. This is a requirement
before transferring the guest EQ pages to a destination.

When the VM is stopped, the handler sets the source PQs to PENDING to
stop the flow of events and to possibly catch a triggered interrupt
occuring while the VM is stopped. Their previous state is saved. The
XIVE controller is then synced through KVM to flush any in-flight
event notification and to stabilize the EQs. At this stage, the EQ
pages are marked dirty to make sure the EQ pages are transferred if a
migration sequence is in progress.

The previous configuration of the sources is restored when the VM
resumes, after a migration or a stop. If an interrupt was queued while
the VM was stopped, the handler simply generates the missing trigger.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 277dd3d7712ae056d2614ea164f6560afd5d71d4
      
https://github.com/qemu/qemu/commit/277dd3d7712ae056d2614ea164f6560afd5d71d4
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/spapr_xive_kvm.c
    M hw/intc/xive.c
    M hw/ppc/spapr_irq.c
    M include/hw/ppc/spapr_xive.h
    M include/hw/ppc/xive.h

  Log Message:
  -----------
  spapr/xive: add migration support for KVM

When the VM is stopped, the VM state handler stabilizes the XIVE IC
and marks the EQ pages dirty. These are then transferred to destination
before the transfer of the device vmstates starts.

The SpaprXive interrupt controller model captures the XIVE internal
tables, EAT and ENDT and the XiveTCTX model does the same for the
thread interrupt context registers.

At restart, the SpaprXive 'post_load' method restores all the XIVE
states. It is called by the sPAPR machine 'post_load' method, when all
XIVE states have been transferred and loaded.

Finally, the source states are restored in the VM change state handler
when the machine reaches the running state.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 0dc9f5f8496a23da375a3b19556e265ba22478e0
      
https://github.com/qemu/qemu/commit/0dc9f5f8496a23da375a3b19556e265ba22478e0
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr_irq.c

  Log Message:
  -----------
  spapr/xive: activate KVM support

All is in place for KVM now. State synchronization and migration will
come next.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 90c20e1e2ce0fb52975ff4d6590620ef0129790e
      
https://github.com/qemu/qemu/commit/90c20e1e2ce0fb52975ff4d6590620ef0129790e
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/core/sysbus.c
    M include/hw/sysbus.h

  Log Message:
  -----------
  sysbus: add a sysbus_mmio_unmap() helper

This will be used to remove the MMIO regions of the POWER9 XIVE
interrupt controller when the sPAPR machine is reseted.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 56b11587dfc79dc6453d857159801dcc38f24d0c
      
https://github.com/qemu/qemu/commit/56b11587dfc79dc6453d857159801dcc38f24d0c
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive_kvm.c
    M hw/intc/xics_kvm.c
    M include/hw/ppc/spapr_xive.h
    M include/hw/ppc/xics_spapr.h

  Log Message:
  -----------
  spapr: introduce routines to delete the KVM IRQ device

If a new interrupt mode is chosen by CAS, the machine generates a
reset to reconfigure. At this point, the connection with the previous
KVM device needs to be closed and a new connection needs to opened
with the KVM device operating the chosen interrupt mode.

New routines are introduced to destroy the XICS and the XIVE KVM
devices. They make use of a new KVM device ioctl which destroys the
device and also disconnects the IRQ presenters from the vCPUs.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 3bf84e99c823987704d1324cf0e34e7597e737a5
      
https://github.com/qemu/qemu/commit/3bf84e99c823987704d1324cf0e34e7597e737a5
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive_kvm.c
    M hw/intc/xics_kvm.c

  Log Message:
  -----------
  spapr: check for the activation of the KVM IRQ device

The activation of the KVM IRQ device depends on the interrupt mode
chosen at CAS time by the machine and some methods used at reset or by
the migration need to be protected.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: ae805ea9073bb97363d867ef081be27e2c63d782
      
https://github.com/qemu/qemu/commit/ae805ea9073bb97363d867ef081be27e2c63d782
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/ppc/spapr_irq.c
    M include/hw/ppc/spapr_irq.h
    M include/hw/ppc/spapr_xive.h

  Log Message:
  -----------
  spapr/irq: introduce a spapr_irq_init_device() helper

The way the XICS and the XIVE devices are initialized follows the same
pattern. First, try to connect to the KVM device and if not possible
fallback on the emulated device, unless a kernel_irqchip is required.
The spapr_irq_init_device() routine implements this sequence in
generic way using new sPAPR IRQ handlers ->init_emu() and ->init_kvm().

The XIVE init sequence is moved under the associated sPAPR IRQ
->init() handler. This will change again when KVM support is added for
the dual interrupt mode.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: cf435df697e50db5ed1ec60e5efe639123a03154
      
https://github.com/qemu/qemu/commit/cf435df697e50db5ed1ec60e5efe639123a03154
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/xics_spapr.c
    M include/hw/ppc/xics.h

  Log Message:
  -----------
  spapr/irq: initialize the IRQ device only once

Add a check to make sure that the routine initializing the emulated
IRQ device is called once. We don't have much to test on the XICS
side, so we introduce a 'init' boolean under ICSState.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 83629419a52f393d67317b14a861d3062e37c5c3
      
https://github.com/qemu/qemu/commit/83629419a52f393d67317b14a861d3062e37c5c3
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/xics.c

  Log Message:
  -----------
  ppc/xics: fix irq priority in ics_set_irq_type()

Recent commits changed the behavior of ics_set_irq_type() to
initialize correctly LSIs at the KVM level. ics_set_irq_type() is also
called by the realize routine of the different devices of the machine
when initial interrupts are claimed, before the ICSState device is
reseted.

In the case, the ICSIRQState priority is 0x0 and the call to
ics_set_irq_type() results in configuring the target of the
interrupt. On P9, when using the KVM XICS-on-XIVE device, the target
is configured to be server 0, priority 0 and the event queue 0 is
created automatically by KVM.

With the dual interrupt mode creating the KVM device at reset, it
leads to unexpected effects on the guest, mostly blocking IPIs. This
is wrong, fix it by reseting the ICSIRQState structure when
ics_set_irq_type() is called.

Fixes: commit 6cead90c5c9c ("xics: Write source state to KVM at claim time")
Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 3f777abc7107a27a2c19ee0eb823054fc9ecc902
      
https://github.com/qemu/qemu/commit/3f777abc7107a27a2c19ee0eb823054fc9ecc902
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive_kvm.c
    M hw/intc/xics_kvm.c
    M hw/intc/xive.c
    M hw/ppc/spapr_irq.c
    M include/hw/ppc/xive.h

  Log Message:
  -----------
  spapr/irq: add KVM support to the 'dual' machine

The interrupt mode is chosen by the CAS negotiation process and
activated after a reset to take into account the required changes in
the machine. This brings new constraints on how the associated KVM IRQ
device is initialized.

Currently, each model takes care of the initialization of the KVM
device in their realize method but this is not possible anymore as the
initialization needs to be done globaly when the interrupt mode is
known, i.e. when machine is reseted. It also means that we need a way
to delete a KVM device when another mode is chosen.

Also, to support migration, the QEMU objects holding the state to
transfer should always be available but not necessarily activated.

The overall approach of this proposal is to initialize both interrupt
mode at the QEMU level to keep the IRQ number space in sync and to
allow switching from one mode to another. For the KVM side of things,
the whole initialization of the KVM device, sources and presenters, is
grouped in a single routine. The XICS and XIVE sPAPR IRQ reset
handlers are modified accordingly to handle the init and the delete
sequences of the KVM device.

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 24563a587f964ff16477feab54686ccf617d3570
      
https://github.com/qemu/qemu/commit/24563a587f964ff16477feab54686ccf617d3570
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M MAINTAINERS
    M docs/index.rst
    A docs/specs/index.rst
    A docs/specs/ppc-spapr-xive.rst
    A docs/specs/ppc-xive.rst

  Log Message:
  -----------
  docs: provide documentation on the POWER9 XIVE interrupt controller

This documents the overall XIVE architecture and the XIVE support for
sPAPR guest machines (pseries).

It also provides documentation on the 'info pic' command.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Satheesh Rajendran <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: cdd71c8e9dffc97c5e0569b6ea14dfb65fc74851
      
https://github.com/qemu/qemu/commit/cdd71c8e9dffc97c5e0569b6ea14dfb65fc74851
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/intc/spapr_xive.c
    M hw/intc/spapr_xive_kvm.c

  Log Message:
  -----------
  spapr/xive: fix multiple resets when using the 'dual' interrupt mode

Today, when a reset occurs on a pseries machine using the 'dual'
interrupt mode, the KVM devices are released and recreated depending
on the interrupt mode selected by CAS. If XIVE is selected, the SysBus
memory regions of the SpaprXive model are initialized by the KVM
backend initialization routine each time a reset occurs. This leads to
a crash after a couple of resets because the machine reaches the
QDEV_MAX_MMIO limit of SysBusDevice :

qemu-system-ppc64: hw/core/sysbus.c:193: sysbus_init_mmio: Assertion 
`dev->num_mmio < QDEV_MAX_MMIO' failed.

To fix, initialize the SysBus memory regions in spapr_xive_realize()
called only once and remove the same inits from the QEMU and KVM
backend initialization routines which are called at each reset.

Reported-by: Satheesh Rajendran <address@hidden>
Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bd94bc06479ad3be5e2d5db70fde9e8098b77d21
      
https://github.com/qemu/qemu/commit/bd94bc06479ad3be5e2d5db70fde9e8098b77d21
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: change default interrupt mode to 'dual'

Now that XIVE support is complete (QEMU emulated and KVM devices),
change the pseries machine to advertise both interrupt modes: XICS
(P7/P8) and XIVE (P9).

The machine default interrupt modes depends on the version. Current
settings are:

    pseries   default interrupt mode

    4.1       dual
    4.0       xics
    3.1       xics
    3.0       legacy xics (different IRQ number space layout)

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 3725ef1a944bbe1173b55fdabe76fb17876f1d9e
      
https://github.com/qemu/qemu/commit/3725ef1a944bbe1173b55fdabe76fb17876f1d9e
  Author: Greg Kurz <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Don't migrate the hpt_maxpagesize cap to older machine types

Commit 0b8c89be7f7b added the hpt_maxpagesize capability to the migration
stream. This is okay for new machine types but it breaks backward migration
to older QEMUs, which don't expect the extra subsection.

Add a compatibility boolean flag to the sPAPR machine class and use it to
skip migration of the capability for machine types 4.0 and older. This
fixes migration to an older QEMU. Note that the destination will emit a
warning:

qemu-system-ppc64: warning: cap-hpt-max-page-size lower level (16) in incoming 
stream than on destination (24)

This is expected and harmless though. It is okay to migrate from a lower
HPT maximum page size (64k) to a greater one (16M).

Fixes: 0b8c89be7f7b "spapr: Add forgotten capability to migration stream"
Based-on: <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 83b90bf026767df5faefe3daca9f1649a5591418
      
https://github.com/qemu/qemu/commit/83b90bf026767df5faefe3daca9f1649a5591418
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/pnv.c

  Log Message:
  -----------
  ppc/pnv: introduce new skiboot platform properties

Newer skiboots (after 6.3) support QEMU platforms that have
characteristics closer to real OpenPOWER systems. The CPU type is used
to define the BMC drivers: Aspeed AST2400 for POWER8 processors and
AST2500 for POWER9s.

Advertise the new platform property names, "qemu,powernv8" and
"qemu,powernv9", using the CPU type chosen for the QEMU PowerNV
machine. Also, advertise the original platform name "qemu,powernv" in
case of POWER8 processors for compatibility with older skiboots.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: ce4b1b56852ea741170ae85d3b8c0771c1ca7c9e
      
https://github.com/qemu/qemu/commit/ce4b1b56852ea741170ae85d3b8c0771c1ca7c9e
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-05-29 (Wed, 29 May 2019)

  Changed paths:
    M hw/ppc/pnv_xscom.c

  Log Message:
  -----------
  ppc/pnv: add dummy XSCOM registers for PRD initialization

PRD (Processor recovery diagnostics) is a service available on
OpenPower systems. The opal-prd daemon initializes the PowerPC
Processor through the XSCOM bus and then waits for hardware diagnostic
events.

Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 60905286cb5150de854e08279bca7dfc4b549e91
      
https://github.com/qemu/qemu/commit/60905286cb5150de854e08279bca7dfc4b549e91
  Author: Peter Maydell <address@hidden>
  Date:   2019-05-30 (Thu, 30 May 2019)

  Changed paths:
    M MAINTAINERS
    M configure
    M docs/index.rst
    A docs/specs/index.rst
    A docs/specs/ppc-spapr-xive.rst
    A docs/specs/ppc-xive.rst
    M hw/core/sysbus.c
    M hw/intc/Makefile.objs
    M hw/intc/spapr_xive.c
    A hw/intc/spapr_xive_kvm.c
    M hw/intc/xics.c
    M hw/intc/xics_kvm.c
    M hw/intc/xics_spapr.c
    M hw/intc/xive.c
    M hw/isa/i82378.c
    M hw/ppc/Kconfig
    M hw/ppc/pnv.c
    M hw/ppc/pnv_xscom.c
    M hw/ppc/prep.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_irq.c
    M hw/ppc/spapr_rtas.c
    M include/hw/ppc/spapr.h
    M include/hw/ppc/spapr_irq.h
    M include/hw/ppc/spapr_xive.h
    M include/hw/ppc/xics.h
    M include/hw/ppc/xics_spapr.h
    M include/hw/ppc/xive.h
    M include/hw/ppc/xive_regs.h
    M include/hw/sysbus.h
    M target/ppc/helper.h
    M target/ppc/int_helper.c
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h
    M target/ppc/trace-events
    M target/ppc/translate/vmx-impl.inc.c
    M target/ppc/translate/vsx-impl.inc.c
    M tests/docker/Makefile.include
    A tests/docker/dockerfiles/debian-ppc64-cross.docker
    M tests/tcg/ppc/Makefile.include

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.1-20190529' into 
staging

ppc patch queue 2019-05-29

Next pull request against qemu-4.1.  Highlights:
  * KVM accelerated support for the XIVE interrupt controller in PAPR
    guests
  * A number of TCG vector fixes
  * Fixes for the PReP / 40p machine
  * Improvements to make check-tcg test coverage

Other than that it's just a bunch of assorted fixes, cleanups and
minor improvements.

This supersedes both the pull request dated 2019-05-21 and the one
dated 2019-05-22.  I've dropped one hunk which I think may have caused
the check-tcg failure that Peter saw (by enabling the ppc64abi32
build, which I think has been broken for ages).  I'm not entirely
certain, since I haven't reproduced exactly the same failure.

# gpg: Signature made Wed 29 May 2019 07:49:04 BST
# gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
# gpg: Good signature from "David Gibson <address@hidden>" [full]
# gpg:                 aka "David Gibson (Red Hat) <address@hidden>" [full]
# gpg:                 aka "David Gibson (ozlabs.org) <address@hidden>" [full]
# gpg:                 aka "David Gibson (kernel.org) <address@hidden>" 
[unknown]
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-4.1-20190529: (44 commits)
  ppc/pnv: add dummy XSCOM registers for PRD initialization
  ppc/pnv: introduce new skiboot platform properties
  spapr: Don't migrate the hpt_maxpagesize cap to older machine types
  spapr: change default interrupt mode to 'dual'
  spapr/xive: fix multiple resets when using the 'dual' interrupt mode
  docs: provide documentation on the POWER9 XIVE interrupt controller
  spapr/irq: add KVM support to the 'dual' machine
  ppc/xics: fix irq priority in ics_set_irq_type()
  spapr/irq: initialize the IRQ device only once
  spapr/irq: introduce a spapr_irq_init_device() helper
  spapr: check for the activation of the KVM IRQ device
  spapr: introduce routines to delete the KVM IRQ device
  sysbus: add a sysbus_mmio_unmap() helper
  spapr/xive: activate KVM support
  spapr/xive: add migration support for KVM
  spapr/xive: introduce a VM state change handler
  spapr/xive: add state synchronization with KVM
  spapr/xive: add hcall support when under KVM
  spapr/xive: add KVM support
  spapr: Print out extra hints when CAS negotiation of interrupt mode fails
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/48a8b399619c...60905286cb51



reply via email to

[Prev in Thread] Current Thread [Next in Thread]