qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ec132e: spapr: Support NVIDIA V100 GPU with N


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] ec132e: spapr: Support NVIDIA V100 GPU with NVLink2
Date: Sun, 28 Apr 2019 03:42:09 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ec132efaa81f09861a3bd6afad94827e74543b3f
      
https://github.com/qemu/qemu/commit/ec132efaa81f09861a3bd6afad94827e74543b3f
  Author: Alexey Kardashevskiy <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/Makefile.objs
    M hw/ppc/spapr.c
    M hw/ppc/spapr_pci.c
    A hw/ppc/spapr_pci_nvlink2.c
    M hw/vfio/pci-quirks.c
    M hw/vfio/pci.c
    M hw/vfio/pci.h
    M hw/vfio/trace-events
    M include/hw/pci-host/spapr.h
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Support NVIDIA V100 GPU with NVLink2

NVIDIA V100 GPUs have on-board RAM which is mapped into the host memory
space and accessible as normal RAM via an NVLink bus. The VFIO-PCI driver
implements special regions for such GPUs and emulates an NVLink bridge.
NVLink2-enabled POWER9 CPUs also provide address translation services
which includes an ATS shootdown (ATSD) register exported via the NVLink
bridge device.

This adds a quirk to VFIO to map the GPU memory and create an MR;
the new MR is stored in a PCI device as a QOM link. The sPAPR PCI uses
this to get the MR and map it to the system address space.
Another quirk does the same for ATSD.

This adds additional steps to sPAPR PHB setup:

1. Search for specific GPUs and NPUs, collect findings in
sPAPRPHBState::nvgpus, manage system address space mappings;

2. Add device-specific properties such as "ibm,npu", "ibm,gpu",
"memory-block", "link-speed" to advertise the NVLink2 function to
the guest;

3. Add "mmio-atsd" to vPHB to advertise the ATSD capability;

4. Add new memory blocks (with extra "linux,memory-usable" to prevent
the guest OS from accessing the new memory until it is onlined) and
npuphb# nodes representing an NPU unit for every vPHB as the GPU driver
uses it for link discovery.

This allocates space for GPU RAM and ATSD like we do for MMIOs by
adding 2 new parameters to the phb_placement() hook. Older machine types
set these to zero.

This puts new memory nodes in a separate NUMA node to as the GPU RAM
needs to be configured equally distant from any other node in the system.
Unlike the host setup which assigns numa ids from 255 downwards, this
adds new NUMA nodes after the user configures nodes or from 1 if none
were configured.

This adds requirement similar to EEH - one IOMMU group per vPHB.
The reason for this is that ATSD registers belong to a physical NPU
so they cannot invalidate translations on GPUs attached to another NPU.
It is guaranteed by the host platform as it does not mix NVLink bridges
or GPUs from different NPU in the same IOMMU group. If more than one
IOMMU group is detected on a vPHB, this disables ATSD support for that
vPHB and prints a warning.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
[aw: for vfio portions]
Acked-by: Alex Williamson <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 7cbf3f113a52947a77b88132915f136bd8450e56
      
https://github.com/qemu/qemu/commit/7cbf3f113a52947a77b88132915f136bd8450e56
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/prep.c

  Log Message:
  -----------
  hw/ppc/prep: Drop useless inclusion of "hw/input/i8042.h"

In commit 47973a2dbf we split the last generic chipset out of
the PC board, but missed to remove the i8042 keyboard controller.
This omission was later fixed in commit 7cb00357c1, but here we
forgot to remove the "i8042.h" include. Do it now.

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


  Commit: 64db6c70dc5d41cb7ad0c6c9d7a81a905a0d321b
      
https://github.com/qemu/qemu/commit/64db6c70dc5d41cb7ad0c6c9d7a81a905a0d321b
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  spapr/rtas: modify spapr_rtas_register() to remove RTAS handlers

Removing RTAS handlers will become necessary when the new pseries
machine supporting multiple interrupt mode is introduced.

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


  Commit: f56275a2fc4b627604c71e5833bd357ee9b6ecbb
      
https://github.com/qemu/qemu/commit/f56275a2fc4b627604c71e5833bd357ee9b6ecbb
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/spapr_irq.c

  Log Message:
  -----------
  spapr/irq: remove spapr_ics_create()

spapr_ics_create() is only called once. Merge it in spapr_irq_init_xics()
and simplify a bit the error handling by using 'error_fatal' .

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


  Commit: b93745bba40eb0ec851d8954de91057d79902b06
      
https://github.com/qemu/qemu/commit/b93745bba40eb0ec851d8954de91057d79902b06
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/cpu-models.c
    M target/ppc/cpu-models.h

  Log Message:
  -----------
  target/ppc: Style fixes for ppc-models.[ch]

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


  Commit: c647e3fe3d6a8bcc47fefd14e30c926948732951
      
https://github.com/qemu/qemu/commit/c647e3fe3d6a8bcc47fefd14e30c926948732951
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/cpu.h

  Log Message:
  -----------
  target/ppc: Style fixes for cpu.[ch]

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


  Commit: b6cb41b22ce247bd24d037cd299eb98667ecf00a
      
https://github.com/qemu/qemu/commit/b6cb41b22ce247bd24d037cd299eb98667ecf00a
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/int_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for int_helper.c

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


  Commit: fa9ebf8c3e39cafa60e16116b74405ac935c0674
      
https://github.com/qemu/qemu/commit/fa9ebf8c3e39cafa60e16116b74405ac935c0674
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/fpu_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for fpu_helper.c

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


  Commit: 95ef66ed70181e2054b64ed078fc342236796d43
      
https://github.com/qemu/qemu/commit/95ef66ed70181e2054b64ed078fc342236796d43
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/dfp_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for dfp_helper.c

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


  Commit: 47733729b0c91f991ac0ca54d532d612d7fe727e
      
https://github.com/qemu/qemu/commit/47733729b0c91f991ac0ca54d532d612d7fe727e
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for excp_helper.c

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


  Commit: 02381ec16e71c9a37321195a1b426e850b2ca241
      
https://github.com/qemu/qemu/commit/02381ec16e71c9a37321195a1b426e850b2ca241
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/gdbstub.c

  Log Message:
  -----------
  target/ppc: Style fixes for gdbstub.c

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


  Commit: c86f377c850a5217c32579a11aae05272f27b668
      
https://github.com/qemu/qemu/commit/c86f377c850a5217c32579a11aae05272f27b668
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/helper_regs.h

  Log Message:
  -----------
  target/ppc: Style fixes for helper_regs.h

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


  Commit: c995e942bf1e8bc9b6ab0dbc9ceae3e661e7af17
      
https://github.com/qemu/qemu/commit/c995e942bf1e8bc9b6ab0dbc9ceae3e661e7af17
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h

  Log Message:
  -----------
  target/ppc: Style fixes for kvm_ppc.h and kvm.c

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


  Commit: 6f7a69936b0b09b7cc8451aaa7589cccaab7e88c
      
https://github.com/qemu/qemu/commit/6f7a69936b0b09b7cc8451aaa7589cccaab7e88c
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/machine.c

  Log Message:
  -----------
  target/ppc: Style fixes for machine.c

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


  Commit: 5a2c8b9ed9c1f2e52a40945b7728e5c6a76facc6
      
https://github.com/qemu/qemu/commit/5a2c8b9ed9c1f2e52a40945b7728e5c6a76facc6
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mem_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for mem_helper.c

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


  Commit: 55b8f8beb66f54705f67976a29977534ef9bab64
      
https://github.com/qemu/qemu/commit/55b8f8beb66f54705f67976a29977534ef9bab64
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mfrom_table.inc.c
    M target/ppc/mfrom_table_gen.c

  Log Message:
  -----------
  target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c

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


  Commit: d81b43279b2658a5136edf862ca672161a6aa85b
      
https://github.com/qemu/qemu/commit/d81b43279b2658a5136edf862ca672161a6aa85b
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/misc_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for misc_helper.c

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


  Commit: 596e3ca852af9627462bcc325fa8a718a686099b
      
https://github.com/qemu/qemu/commit/596e3ca852af9627462bcc325fa8a718a686099b
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu-hash32.c

  Log Message:
  -----------
  target/ppc: Style fixes for mmu-hash32.[ch]

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


  Commit: d75cbae8533d6e9e441aa16524b0ad73cf6e1bbe
      
https://github.com/qemu/qemu/commit/d75cbae8533d6e9e441aa16524b0ad73cf6e1bbe
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu-hash64.c

  Log Message:
  -----------
  target/ppc: Style fixes for mmu-hash64.[ch]

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


  Commit: fe4ade3155140cbcbc9d876b29fa6c2993fd0188
      
https://github.com/qemu/qemu/commit/fe4ade3155140cbcbc9d876b29fa6c2993fd0188
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  target/ppc: Style fixes for mmu_helper.c

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


  Commit: a65820908a41885da5729b2501ea14b4258cfdb4
      
https://github.com/qemu/qemu/commit/a65820908a41885da5729b2501ea14b4258cfdb4
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/monitor.c

  Log Message:
  -----------
  target/ppc: Style fixes for monitor.c

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


  Commit: 1d28b5f6ef89cca680ef2075a72b084cafbbb07c
      
https://github.com/qemu/qemu/commit/1d28b5f6ef89cca680ef2075a72b084cafbbb07c
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/translate_init.inc.c

  Log Message:
  -----------
  target/ppc: Style fixes for translate_init.inc.c

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


  Commit: efe843d8ab5927c07e8cb463188f78dc4a9e8158
      
https://github.com/qemu/qemu/commit/efe843d8ab5927c07e8cb463188f78dc4a9e8158
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/translate.c

  Log Message:
  -----------
  target/ppc: Style fixes for translate.c

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


  Commit: f895d2c820b697045e760fc219700abc2e441983
      
https://github.com/qemu/qemu/commit/f895d2c820b697045e760fc219700abc2e441983
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  target/ppc: Style fixes for translate/fp-impl.inc.c

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


  Commit: 34b2300cbb63a64e5aafd426ff65b6c45ff26611
      
https://github.com/qemu/qemu/commit/34b2300cbb63a64e5aafd426ff65b6c45ff26611
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  target/ppc: Style fixes for translate/vsx-impl.inc.c

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


  Commit: 3255386633c9110dc05f3545ea967585a3b38c75
      
https://github.com/qemu/qemu/commit/3255386633c9110dc05f3545ea967585a3b38c75
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  target/ppc: Style fixes for translate/vmx-impl.inc.c

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


  Commit: eb512d15a0c90a90400f7e4d2e40cb27eb1e914a
      
https://github.com/qemu/qemu/commit/eb512d15a0c90a90400f7e4d2e40cb27eb1e914a
  Author: David Gibson <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  target/ppc: Style fixes for translate/spe-impl.inc.c

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


  Commit: c413605ba6bfe9ae9f27d316f573df562d70830a
      
https://github.com/qemu/qemu/commit/c413605ba6bfe9ae9f27d316f573df562d70830a
  Author: Greg Kurz <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: Get rid of duplicate code for node name creation

According to the changelog of 298a971024534, SpaprPhbState::dtbusname was
introduced to "make it easier to relate the guest and qemu views of memory
to each other", hence its name.

Use it when creating the PHB node to avoid code duplication.

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


  Commit: e8ec4adfe2de8603e271e38b0d50d7d453c0c21b
      
https://github.com/qemu/qemu/commit/e8ec4adfe2de8603e271e38b0d50d7d453c0c21b
  Author: Greg Kurz <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/pci/pci.c
    M hw/ppc/spapr_pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  spapr: Drop duplicate PCI swizzle code

LSI mapping in spapr currently open-codes standard PCI swizzling. It thus
duplicates the code of pci_swizzle_map_irq_fn().

Expose the swizzling formula so that it can be used with a slot number
when building the device tree. Simply drop pci_spapr_map_irq() and call
pci_swizzle_map_irq_fn() instead.

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


  Commit: 83416be886d92bfeda668e9a3325f180e3a36766
      
https://github.com/qemu/qemu/commit/83416be886d92bfeda668e9a3325f180e3a36766
  Author: Greg Kurz <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/trace-events

  Log Message:
  -----------
  target/ppc/trace-events: Fix trivial typo

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


  Commit: 8d83cbf1015f547cd9336881e6b62ae2ca293849
      
https://github.com/qemu/qemu/commit/8d83cbf1015f547cd9336881e6b62ae2ca293849
  Author: Greg Kurz <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

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

  Log Message:
  -----------
  target/ppc/kvm: Convert DPRINTF to traces

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


  Commit: 24b5e0a5ce36975c24d1870832ad3a97876f460a
      
https://github.com/qemu/qemu/commit/24b5e0a5ce36975c24d1870832ad3a97876f460a
  Author: Benjamin Herrenschmidt <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu-radix64.c

  Log Message:
  -----------
  target/ppc: Don't check UPRT in radix mode when in HV real mode

It appears that during kexec, we run for a while in hypervisor
real mode with LPCR:HR set and LPCR:UPRT clear, which trips
the assertion in ppc_radix64_handle_mmu_fault().

First this shouldn't be an assertion, it's a guest error.

Then we shouldn't be checking these things in hypervisor real
mode (or in virtual hypervisor guest real mode which is similar)
as the real HW won't use those LPCR bits in those cases anyway,
so technically it's ok to have this discrepancy.

Signed-off-by: Benjamin Herrenschmidt <address@hidden>
Signed-off-by: Cédric Le Goater <address@hidden>
Message-Id: <address@hidden>
[dwg: Fix for 32-bit builds]
Signed-off-by: David Gibson <address@hidden>


  Commit: 993aaf0c0003f7af1bf62c1c2d5cc3c0fe687f5b
      
https://github.com/qemu/qemu/commit/993aaf0c0003f7af1bf62c1c2d5cc3c0fe687f5b
  Author: Benjamin Herrenschmidt <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/spapr_hcall.c

  Log Message:
  -----------
  ppc/spapr: Use proper HPTE accessors for H_READ

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


  Commit: a2dd4e83e76ba9c0d432145059dd9e2b2a096e2b
      
https://github.com/qemu/qemu/commit/a2dd4e83e76ba9c0d432145059dd9e2b2a096e2b
  Author: Benjamin Herrenschmidt <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr.h
    M target/ppc/cpu.h
    M target/ppc/mmu-hash64.c
    M target/ppc/mmu-hash64.h

  Log Message:
  -----------
  ppc/hash64: Rework R and C bit updates

With MT-TCG, we are now running translation in a racy way, thus
we need to mimic hardware when it comes to updating the R and
C bits, by doing byte stores.

The current "store_hpte" abstraction is ill suited for this, we
replace it with two separate callbacks for setting R and C.

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


  Commit: 6e8a65abbbd47a870ddc37484e7c9f183b7a7cce
      
https://github.com/qemu/qemu/commit/6e8a65abbbd47a870ddc37484e7c9f183b7a7cce
  Author: Benjamin Herrenschmidt <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu-hash32.c

  Log Message:
  -----------
  ppc/hash32: Rework R and C bit updates

With MT-TCG, we are now running translation in a racy way, thus
we need to mimic hardware when it comes to updating the R and
C bits, by doing byte stores.

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


  Commit: aaef873b130f4f9c78f8e97b69c235c81b8b8b88
      
https://github.com/qemu/qemu/commit/aaef873b130f4f9c78f8e97b69c235c81b8b8b88
  Author: Artyom Tarasenko <address@hidden>
  Date:   2019-04-26 (Fri, 26 Apr 2019)

  Changed paths:
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  target/ppc: improve performance of large BAT invalidations

Performing a complete flush is ~ 100 times faster than flushing
256MiB of 4KiB pages. Set a limit of 1024 pages and perform a complete
flush afterwards.

This patch significantly speeds up AIX 5.1 and NetBSD-ofppc.

Signed-off-by: Artyom Tarasenko <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 9ec34ecc97bcd5df04b0f67a774d79ffcd6b0a11
      
https://github.com/qemu/qemu/commit/9ec34ecc97bcd5df04b0f67a774d79ffcd6b0a11
  Author: Peter Maydell <address@hidden>
  Date:   2019-04-27 (Sat, 27 Apr 2019)

  Changed paths:
    M hw/pci/pci.c
    M hw/ppc/Makefile.objs
    M hw/ppc/prep.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_irq.c
    M hw/ppc/spapr_pci.c
    A hw/ppc/spapr_pci_nvlink2.c
    M hw/ppc/spapr_rtas.c
    M hw/vfio/pci-quirks.c
    M hw/vfio/pci.c
    M hw/vfio/pci.h
    M hw/vfio/trace-events
    M include/hw/pci-host/spapr.h
    M include/hw/pci/pci.h
    M include/hw/ppc/spapr.h
    M target/ppc/cpu-models.c
    M target/ppc/cpu-models.h
    M target/ppc/cpu.h
    M target/ppc/dfp_helper.c
    M target/ppc/excp_helper.c
    M target/ppc/fpu_helper.c
    M target/ppc/gdbstub.c
    M target/ppc/helper_regs.h
    M target/ppc/int_helper.c
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h
    M target/ppc/machine.c
    M target/ppc/mem_helper.c
    M target/ppc/mfrom_table.inc.c
    M target/ppc/mfrom_table_gen.c
    M target/ppc/misc_helper.c
    M target/ppc/mmu-hash32.c
    M target/ppc/mmu-hash64.c
    M target/ppc/mmu-hash64.h
    M target/ppc/mmu-radix64.c
    M target/ppc/mmu_helper.c
    M target/ppc/monitor.c
    M target/ppc/trace-events
    M target/ppc/translate.c
    M target/ppc/translate/fp-impl.inc.c
    M target/ppc/translate/spe-impl.inc.c
    M target/ppc/translate/vmx-impl.inc.c
    M target/ppc/translate/vsx-impl.inc.c
    M target/ppc/translate_init.inc.c

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

ppc patch queue 2019-04-26

Here's the first ppc target pull request for qemu-4.1.  This has a
number of things that have accumulated while qemu-4.0 was frozen.

 * A number of emulated MMU improvements from Ben Herrenschmidt

 * Assorted cleanups fro Greg Kurz

 * A large set of mostly mechanical cleanups from me to make target/ppc
   much closer to compliant with the modern coding style

 * Support for passthrough of NVIDIA GPUs using NVLink2

As well as some other assorted fixes.

# gpg: Signature made Fri 26 Apr 2019 07:02:19 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-20190426: (36 commits)
  target/ppc: improve performance of large BAT invalidations
  ppc/hash32: Rework R and C bit updates
  ppc/hash64: Rework R and C bit updates
  ppc/spapr: Use proper HPTE accessors for H_READ
  target/ppc: Don't check UPRT in radix mode when in HV real mode
  target/ppc/kvm: Convert DPRINTF to traces
  target/ppc/trace-events: Fix trivial typo
  spapr: Drop duplicate PCI swizzle code
  spapr_pci: Get rid of duplicate code for node name creation
  target/ppc: Style fixes for translate/spe-impl.inc.c
  target/ppc: Style fixes for translate/vmx-impl.inc.c
  target/ppc: Style fixes for translate/vsx-impl.inc.c
  target/ppc: Style fixes for translate/fp-impl.inc.c
  target/ppc: Style fixes for translate.c
  target/ppc: Style fixes for translate_init.inc.c
  target/ppc: Style fixes for monitor.c
  target/ppc: Style fixes for mmu_helper.c
  target/ppc: Style fixes for mmu-hash64.[ch]
  target/ppc: Style fixes for mmu-hash32.[ch]
  target/ppc: Style fixes for misc_helper.c
  ...

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


Compare: https://github.com/qemu/qemu/compare/db7f1c3fafa8...9ec34ecc97bc



reply via email to

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