mbox

[PULL,00/38] ppc-for-4.1 queue 20190522

Message ID 20190522044600.16534-1-david@gibson.dropbear.id.au
State New
Headers show

Pull-request

git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522

Message

David Gibson May 22, 2019, 4:45 a.m. UTC
The following changes since commit a4f667b6714916683408b983cfe0a615a725775f:

  Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190521-3' into staging (2019-05-21 16:30:13 +0100)

are available in the Git repository at:

  git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522

for you to fetch changes up to 885659103ad9e1b0460e89c548e9fb823b007b7e:

  docs: provide documentation on the POWER9 XIVE interrupt controller (2019-05-22 10:38:22 +1000)

----------------------------------------------------------------
ppc patch queue 2019-05-22

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

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

This supersedes the pull request dated 2019-05-21.  I've dropped the
headers update, since it had a mistake, but is now made redundant by a
similar update in Cornelia's applied PR.  I've also added a patch with
extra documentation for the XIVE interrupt controller, and fixed a
couple of minor style errors in the previous PR.

----------------------------------------------------------------
Anton Blanchard (7):
      target/ppc: Fix xvxsigdp
      target/ppc: Fix xxbrq, xxbrw
      target/ppc: Fix vslv and vsrv
      target/ppc: Fix vsum2sws
      target/ppc: Fix xxspltib
      target/ppc: Optimise VSX_LOAD_SCALAR_DS and VSX_VECTOR_LOAD_STORE
      target/ppc: Fix xvabs[sd]p, xvnabs[sd]p, xvneg[sd]p, xvcpsgn[sd]p

Artyom Tarasenko (1):
      hw/ppc/40p: use 1900 as a base year

Boxuan Li (1):
      target/ppc/kvm: Fix trace typo

Cédric Le Goater (17):
      spapr/xive: EQ page should be naturally aligned
      spapr/xive: fix EQ page addresses above 64GB
      spapr/xive: print out the EQ page address in the monitor
      spapr/xive: add KVM support
      spapr/xive: add hcall support when under KVM
      spapr/xive: add state synchronization with KVM
      spapr/xive: introduce a VM state change handler
      spapr/xive: add migration support for KVM
      spapr/xive: activate KVM support
      sysbus: add a sysbus_mmio_unmap() helper
      spapr: introduce routines to delete the KVM IRQ device
      spapr: check for the activation of the KVM IRQ device
      spapr/irq: introduce a spapr_irq_init_device() helper
      spapr/irq: initialize the IRQ device only once
      ppc/xics: fix irq priority in ics_set_irq_type()
      spapr/irq: add KVM support to the 'dual' machine
      docs: provide documentation on the POWER9 XIVE interrupt controller

David Gibson (2):
      spapr: Add forgotten capability to migration stream
      spapr: Fix phb_placement backwards compatibility

Greg Kurz (2):
      spapr/xive: Sanity checks of OV5 during CAS
      spapr: Print out extra hints when CAS negotiation of interrupt mode fails

Philippe Mathieu-Daudé (2):
      hw/ppc/prep: use TYPE_MC146818_RTC instead of a hardcoded string
      hw/ppc/40p: Move the MC146818 RTC to the board where it belongs

Richard Henderson (3):
      configure: Distinguish ppc64 and ppc64le hosts
      configure: Use quotes around uses of $CPU_CFLAGS
      target/ppc: Use vector variable shifts for VSL, VSR, VSRA

Satheesh Rajendran (1):
      Fix typo on "info pic" monitor cmd output for xive

Suraj Jitindar Singh (2):
      target/ppc: Add ibm,purr and ibm,spurr device-tree properties
      target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup

 MAINTAINERS                         |   1 +
 configure                           |  52 ++-
 docs/index.rst                      |   1 +
 docs/specs/index.rst                |  13 +
 docs/specs/ppc-spapr-xive.rst       | 174 ++++++++
 docs/specs/ppc-xive.rst             | 199 +++++++++
 hw/core/sysbus.c                    |  10 +
 hw/intc/Makefile.objs               |   1 +
 hw/intc/spapr_xive.c                | 188 ++++++--
 hw/intc/spapr_xive_kvm.c            | 827 ++++++++++++++++++++++++++++++++++++
 hw/intc/xics.c                      |  10 +-
 hw/intc/xics_kvm.c                  | 113 ++++-
 hw/intc/xics_spapr.c                |   7 +
 hw/intc/xive.c                      |  53 ++-
 hw/isa/i82378.c                     |   4 -
 hw/ppc/Kconfig                      |   5 +
 hw/ppc/prep.c                       |   7 +-
 hw/ppc/spapr.c                      |  34 +-
 hw/ppc/spapr_caps.c                 |   1 +
 hw/ppc/spapr_cpu_core.c             |   2 +
 hw/ppc/spapr_hcall.c                |  26 ++
 hw/ppc/spapr_irq.c                  | 140 ++++--
 hw/ppc/spapr_rtas.c                 |   6 +-
 include/hw/ppc/spapr.h              |   1 +
 include/hw/ppc/spapr_irq.h          |   2 +
 include/hw/ppc/spapr_xive.h         |  39 ++
 include/hw/ppc/xics.h               |   1 +
 include/hw/ppc/xics_spapr.h         |   1 +
 include/hw/ppc/xive.h               |  14 +
 include/hw/ppc/xive_regs.h          |   6 +
 include/hw/sysbus.h                 |   1 +
 target/ppc/helper.h                 |  12 -
 target/ppc/int_helper.c             |  53 +--
 target/ppc/kvm.c                    |   9 +-
 target/ppc/kvm_ppc.h                |   6 +
 target/ppc/trace-events             |   2 +-
 target/ppc/translate/vmx-impl.inc.c |  24 +-
 target/ppc/translate/vsx-impl.inc.c |  86 +++-
 38 files changed, 1926 insertions(+), 205 deletions(-)
 create mode 100644 docs/specs/index.rst
 create mode 100644 docs/specs/ppc-spapr-xive.rst
 create mode 100644 docs/specs/ppc-xive.rst
 create mode 100644 hw/intc/spapr_xive_kvm.c

Comments

Peter Maydell May 23, 2019, 9:29 a.m. UTC | #1
On Wed, 22 May 2019 at 05:46, David Gibson <david@gibson.dropbear.id.au> wrote:
>
> The following changes since commit a4f667b6714916683408b983cfe0a615a725775f:
>
>   Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190521-3' into staging (2019-05-21 16:30:13 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522
>
> for you to fetch changes up to 885659103ad9e1b0460e89c548e9fb823b007b7e:
>
>   docs: provide documentation on the POWER9 XIVE interrupt controller (2019-05-22 10:38:22 +1000)
>
> ----------------------------------------------------------------
> ppc patch queue 2019-05-22
>
> 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
>
> Other than that it's just a bunch of assorted fixes, cleanups and
> minor improvements.
>
> This supersedes the pull request dated 2019-05-21.  I've dropped the
> headers update, since it had a mistake, but is now made redundant by a
> similar update in Cornelia's applied PR.  I've also added a patch with
> extra documentation for the XIVE interrupt controller, and fixed a
> couple of minor style errors in the previous PR.
>
> ----------------------------------------------------------------

Hi -- this failed 'make check-tcg' for the linux-static build
(x86-64 host):

  TEST    linux-test on ppc64abi32
qemu-ppc64abi32:
/home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
cpu_exec: Assertion `!have_mmap_lock()' failed.
qemu-ppc64abi32:
/home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
cpu_exec: Assertion `!have_mmap_lock()' failed.
/home/petmay01/linaro/qemu-for-merges/tests/tcg/Makefile:122: recipe
for target 'run-linux-test' failed

thanks
-- PMM
David Gibson May 24, 2019, 12:46 a.m. UTC | #2
On Thu, May 23, 2019 at 10:29:57AM +0100, Peter Maydell wrote:
> On Wed, 22 May 2019 at 05:46, David Gibson <david@gibson.dropbear.id.au> wrote:
> >
> > The following changes since commit a4f667b6714916683408b983cfe0a615a725775f:
> >
> >   Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190521-3' into staging (2019-05-21 16:30:13 +0100)
> >
> > are available in the Git repository at:
> >
> >   git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522
> >
> > for you to fetch changes up to 885659103ad9e1b0460e89c548e9fb823b007b7e:
> >
> >   docs: provide documentation on the POWER9 XIVE interrupt controller (2019-05-22 10:38:22 +1000)
> >
> > ----------------------------------------------------------------
> > ppc patch queue 2019-05-22
> >
> > 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
> >
> > Other than that it's just a bunch of assorted fixes, cleanups and
> > minor improvements.
> >
> > This supersedes the pull request dated 2019-05-21.  I've dropped the
> > headers update, since it had a mistake, but is now made redundant by a
> > similar update in Cornelia's applied PR.  I've also added a patch with
> > extra documentation for the XIVE interrupt controller, and fixed a
> > couple of minor style errors in the previous PR.
> >
> > ----------------------------------------------------------------
> 
> Hi -- this failed 'make check-tcg' for the linux-static build
> (x86-64 host):
> 
>   TEST    linux-test on ppc64abi32
> qemu-ppc64abi32:
> /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> cpu_exec: Assertion `!have_mmap_lock()' failed.
> qemu-ppc64abi32:
> /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> cpu_exec: Assertion `!have_mmap_lock()' failed.
> /home/petmay01/linaro/qemu-for-merges/tests/tcg/Makefile:122: recipe
> for target 'run-linux-test' failed

Bother.  I did run a make check-tcg on an x86_64 host, and didn't see
this.  Investigating...
David Gibson May 24, 2019, 2:17 a.m. UTC | #3
On Fri, May 24, 2019 at 10:46:16AM +1000, David Gibson wrote:
> On Thu, May 23, 2019 at 10:29:57AM +0100, Peter Maydell wrote:
> > On Wed, 22 May 2019 at 05:46, David Gibson <david@gibson.dropbear.id.au> wrote:
> > >
> > > The following changes since commit a4f667b6714916683408b983cfe0a615a725775f:
> > >
> > >   Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190521-3' into staging (2019-05-21 16:30:13 +0100)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522
> > >
> > > for you to fetch changes up to 885659103ad9e1b0460e89c548e9fb823b007b7e:
> > >
> > >   docs: provide documentation on the POWER9 XIVE interrupt controller (2019-05-22 10:38:22 +1000)
> > >
> > > ----------------------------------------------------------------
> > > ppc patch queue 2019-05-22
> > >
> > > 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
> > >
> > > Other than that it's just a bunch of assorted fixes, cleanups and
> > > minor improvements.
> > >
> > > This supersedes the pull request dated 2019-05-21.  I've dropped the
> > > headers update, since it had a mistake, but is now made redundant by a
> > > similar update in Cornelia's applied PR.  I've also added a patch with
> > > extra documentation for the XIVE interrupt controller, and fixed a
> > > couple of minor style errors in the previous PR.
> > >
> > > ----------------------------------------------------------------
> > 
> > Hi -- this failed 'make check-tcg' for the linux-static build
> > (x86-64 host):
> > 
> >   TEST    linux-test on ppc64abi32
> > qemu-ppc64abi32:
> > /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> > cpu_exec: Assertion `!have_mmap_lock()' failed.
> > qemu-ppc64abi32:
> > /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> > cpu_exec: Assertion `!have_mmap_lock()' failed.
> > /home/petmay01/linaro/qemu-for-merges/tests/tcg/Makefile:122: recipe
> > for target 'run-linux-test' failed
> 
> Bother.  I did run a make check-tcg on an x86_64 host, and didn't see
> this.  Investigating...

  BUILD   TCG tests for ppc64abi32-linux-user
  BUILD   ppc64abi32 guest-tests SKIPPED
  RUN     TCG tests for ppc64abi32-linux-user
  RUN     tests for ppc64abi32 SKIPPED

Well, that explains why I didn't see it.  I'm using the docker setup
for check-tcg, but it's not clear to me what bits I need to run the
ppc64abi32 tests.
David Gibson May 24, 2019, 6:30 a.m. UTC | #4
On Fri, May 24, 2019 at 12:17:25PM +1000, David Gibson wrote:
> On Fri, May 24, 2019 at 10:46:16AM +1000, David Gibson wrote:
> > On Thu, May 23, 2019 at 10:29:57AM +0100, Peter Maydell wrote:
> > > On Wed, 22 May 2019 at 05:46, David Gibson <david@gibson.dropbear.id.au> wrote:
> > > >
> > > > The following changes since commit a4f667b6714916683408b983cfe0a615a725775f:
> > > >
> > > >   Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20190521-3' into staging (2019-05-21 16:30:13 +0100)
> > > >
> > > > are available in the Git repository at:
> > > >
> > > >   git://github.com/dgibson/qemu.git tags/ppc-for-4.1-20190522
> > > >
> > > > for you to fetch changes up to 885659103ad9e1b0460e89c548e9fb823b007b7e:
> > > >
> > > >   docs: provide documentation on the POWER9 XIVE interrupt controller (2019-05-22 10:38:22 +1000)
> > > >
> > > > ----------------------------------------------------------------
> > > > ppc patch queue 2019-05-22
> > > >
> > > > 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
> > > >
> > > > Other than that it's just a bunch of assorted fixes, cleanups and
> > > > minor improvements.
> > > >
> > > > This supersedes the pull request dated 2019-05-21.  I've dropped the
> > > > headers update, since it had a mistake, but is now made redundant by a
> > > > similar update in Cornelia's applied PR.  I've also added a patch with
> > > > extra documentation for the XIVE interrupt controller, and fixed a
> > > > couple of minor style errors in the previous PR.
> > > >
> > > > ----------------------------------------------------------------
> > > 
> > > Hi -- this failed 'make check-tcg' for the linux-static build
> > > (x86-64 host):
> > > 
> > >   TEST    linux-test on ppc64abi32
> > > qemu-ppc64abi32:
> > > /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> > > cpu_exec: Assertion `!have_mmap_lock()' failed.
> > > qemu-ppc64abi32:
> > > /home/petmay01/linaro/qemu-for-merges/accel/tcg/cpu-exec.c:700:
> > > cpu_exec: Assertion `!have_mmap_lock()' failed.
> > > /home/petmay01/linaro/qemu-for-merges/tests/tcg/Makefile:122: recipe
> > > for target 'run-linux-test' failed
> > 
> > Bother.  I did run a make check-tcg on an x86_64 host, and didn't see
> > this.  Investigating...
> 
>   BUILD   TCG tests for ppc64abi32-linux-user
>   BUILD   ppc64abi32 guest-tests SKIPPED
>   RUN     TCG tests for ppc64abi32-linux-user
>   RUN     tests for ppc64abi32 SKIPPED
> 
> Well, that explains why I didn't see it.  I'm using the docker setup
> for check-tcg, but it's not clear to me what bits I need to run the
> ppc64abi32 tests.

What I can find seems to imply that it should use a a 32-bit ppc
target compiler, but if I do that the test SEGVs on master, not just
on my branch.

I'm having a lot of trouble even figuring out what the ppc64abi32
target is supposed to be about.