qemu-ppc
[Top][All Lists]
Advanced

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

[Qemu-ppc] [PATCH qemu v17 00/12] spapr: vfio: Enable Dynamic DMA window


From: Alexey Kardashevskiy
Subject: [Qemu-ppc] [PATCH qemu v17 00/12] spapr: vfio: Enable Dynamic DMA windows (DDW)
Date: Wed, 1 Jun 2016 18:57:31 +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 David's ppc-for-2.7-20160531 tag.


Please comment. Thanks!


Alexey Kardashevskiy (12):
  vmstate: Define VARRAY with VMS_ALLOC
  spapr_iommu: Introduce "enabled" state for TCE table
  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 DMA memory preregistering (SPAPR IOMMU v2)
  spapr_pci: Add and export DMA resetting helper
  vfio: Add host side DMA window capabilities
  vfio/spapr: Create DMA window dynamically (SPAPR IOMMU v2)
  spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW)
  spapr_iommu, vfio, memory: Notify IOMMU about starting/stopping
    listening

 hw/ppc/Makefile.objs          |   1 +
 hw/ppc/spapr.c                |   5 +
 hw/ppc/spapr_iommu.c          | 160 +++++++++++++++++++----
 hw/ppc/spapr_pci.c            |  96 ++++++++++----
 hw/ppc/spapr_rtas_ddw.c       | 293 ++++++++++++++++++++++++++++++++++++++++++
 hw/ppc/spapr_vio.c            |   8 +-
 hw/vfio/Makefile.objs         |   1 +
 hw/vfio/common.c              | 174 +++++++++++++++++++------
 hw/vfio/spapr.c               | 207 +++++++++++++++++++++++++++++
 include/exec/memory.h         |  26 +++-
 include/hw/pci-host/spapr.h   |  10 +-
 include/hw/ppc/spapr.h        |  30 ++++-
 include/hw/vfio/vfio-common.h |  19 ++-
 include/migration/vmstate.h   |  10 ++
 memory.c                      |  26 +++-
 trace-events                  |  10 ++
 16 files changed, 961 insertions(+), 115 deletions(-)
 create mode 100644 hw/ppc/spapr_rtas_ddw.c
 create mode 100644 hw/vfio/spapr.c

-- 
2.5.0.rc3




reply via email to

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