[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH qemu v15 00/17] spapr: vfio: Enable Dynamic DMA window
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [PATCH qemu v15 00/17] spapr: vfio: Enable Dynamic DMA windows (DDW) |
Date: |
Mon, 4 Apr 2016 19:33:29 +1000 |
Each Partitionable Endpoint (IOMMU group) has an address range on a PCI bus
where devices are allowed to do DMA. These ranges are called DMA windows.
By default, there is a single DMA window, 1 or 2GB big, mapped at zero
on a PCI bus.
PAPR defines a DDW RTAS API which allows pseries guests
querying the hypervisor about DDW support and capabilities (page size mask
for now). A pseries guest may request an additional (to the default)
DMA windows using this RTAS API.
The existing pseries Linux guests request an additional window as big as
the guest RAM and map the entire guest window which effectively creates
direct mapping of the guest memory to a PCI bus.
This patchset reworks PPC64 IOMMU code and adds necessary structures
to support big windows on pseries.
This patchset is based on git://github.com/dgibson/qemu.git ppc-for-2.7 branch
and was pushed to address@hidden:aik/qemu.git vfio-v15 branch along with
a few patches on top (automatic support of huge pages and in-kernel
acceleration to be reworked).
This implements comments from v14.
This includes "vmstate: Define VARRAY with VMS_ALLOC" as the patchset needs
it and it has been posted separately but has not been neither accepted
nor rejected so far.
Please comment. Thanks!
Alexey Kardashevskiy (17):
memory: Fix IOMMU replay base address
vmstate: Define VARRAY with VMS_ALLOC
vfio: Check that IOMMU MR translates to system address space
spapr_iommu: Move table allocation to helpers
spapr_iommu: Introduce "enabled" state for TCE table
spapr_iommu: Finish renaming vfio_accel to need_vfio
spapr_iommu: Migrate full state
spapr_iommu: Add root memory region
spapr_pci: Reset DMA config on PHB reset
memory: Add reporting of supported page sizes
vfio: spapr: Add SPAPR IOMMU v2 support (DMA memory preregistering)
spapr_pci: Add and export DMA resetting helper
vfio: Add host side DMA window capabilities
spapr_iommu, vfio, memory: Notify IOMMU about starting/stopping being
used by VFIO
spapr_pci: Get rid of dma_loibn
vfio/spapr: Use VFIO_SPAPR_TCE_v2_IOMMU
spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW)
hw/ppc/Makefile.objs | 1 +
hw/ppc/spapr.c | 7 +-
hw/ppc/spapr_iommu.c | 242 +++++++++++++++++++++++++++-------
hw/ppc/spapr_pci.c | 92 +++++++++----
hw/ppc/spapr_rtas_ddw.c | 292 ++++++++++++++++++++++++++++++++++++++++++
hw/ppc/spapr_vio.c | 8 +-
hw/vfio/Makefile.objs | 1 +
hw/vfio/common.c | 243 +++++++++++++++++++++++++++++------
hw/vfio/prereg.c | 138 ++++++++++++++++++++
include/exec/memory.h | 22 +++-
include/hw/pci-host/spapr.h | 10 +-
include/hw/ppc/spapr.h | 33 +++--
include/hw/vfio/vfio-common.h | 14 +-
include/migration/vmstate.h | 10 ++
memory.c | 17 ++-
target-ppc/kvm_ppc.h | 2 +-
trace-events | 12 +-
17 files changed, 1001 insertions(+), 143 deletions(-)
create mode 100644 hw/ppc/spapr_rtas_ddw.c
create mode 100644 hw/vfio/prereg.c
--
2.5.0.rc3
- [Qemu-ppc] [PATCH qemu v15 00/17] spapr: vfio: Enable Dynamic DMA windows (DDW),
Alexey Kardashevskiy <=
- [Qemu-ppc] [PATCH qemu v15 03/17] vfio: Check that IOMMU MR translates to system address space, Alexey Kardashevskiy, 2016/04/04
- [Qemu-ppc] [PATCH qemu v15 01/17] memory: Fix IOMMU replay base address, Alexey Kardashevskiy, 2016/04/04
- [Qemu-ppc] [PATCH qemu v15 11/17] vfio: spapr: Add SPAPR IOMMU v2 support (DMA memory preregistering), Alexey Kardashevskiy, 2016/04/04
- [Qemu-ppc] [PATCH qemu v15 02/17] vmstate: Define VARRAY with VMS_ALLOC, Alexey Kardashevskiy, 2016/04/04
- [Qemu-ppc] [PATCH qemu v15 10/17] memory: Add reporting of supported page sizes, Alexey Kardashevskiy, 2016/04/04
- [Qemu-ppc] [PATCH qemu v15 06/17] spapr_iommu: Finish renaming vfio_accel to need_vfio, Alexey Kardashevskiy, 2016/04/04