[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH qemu v19 0/5] spapr_pci/spapr_pci_vfio: Support Dynami
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-ppc] [PATCH qemu v19 0/5] spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW) |
Date: |
Mon, 4 Jul 2016 13:33:02 +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 today's upstream sha1 9a48e36 and was tested
with the today's upstream kernel sha1 0b295dd.
Please comment. Thanks!
Alexey Kardashevskiy (5):
spapr_iommu: Realloc guest visible TCE table when starting/stopping
listening
vfio: spapr: Add DMA memory preregistering (SPAPR IOMMU v2)
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)
hw/ppc/Makefile.objs | 1 +
hw/ppc/spapr.c | 7 +-
hw/ppc/spapr_iommu.c | 12 ++
hw/ppc/spapr_pci.c | 81 ++++++++----
hw/ppc/spapr_rtas_ddw.c | 295 ++++++++++++++++++++++++++++++++++++++++++
hw/ppc/trace-events | 4 +
hw/vfio/Makefile.objs | 1 +
hw/vfio/common.c | 170 +++++++++++++++++++-----
hw/vfio/spapr.c | 210 ++++++++++++++++++++++++++++++
hw/vfio/trace-events | 8 ++
include/hw/pci-host/spapr.h | 8 +-
include/hw/ppc/spapr.h | 16 ++-
include/hw/vfio/vfio-common.h | 20 ++-
13 files changed, 774 insertions(+), 59 deletions(-)
create mode 100644 hw/ppc/spapr_rtas_ddw.c
create mode 100644 hw/vfio/spapr.c
--
2.5.0.rc3
- [Qemu-ppc] [PATCH qemu v19 0/5] spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW),
Alexey Kardashevskiy <=
- [Qemu-ppc] [PATCH qemu v19 4/5] vfio/spapr: Create DMA window dynamically (SPAPR IOMMU v2), Alexey Kardashevskiy, 2016/07/03
- [Qemu-ppc] [PATCH qemu v19 5/5] spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW), Alexey Kardashevskiy, 2016/07/03
- [Qemu-ppc] [PATCH qemu v19 1/5] spapr_iommu: Realloc guest visible TCE table when starting/stopping listening, Alexey Kardashevskiy, 2016/07/03
- [Qemu-ppc] [PATCH qemu v19 3/5] vfio: Add host side DMA window capabilities, Alexey Kardashevskiy, 2016/07/03
- [Qemu-ppc] [PATCH qemu v19 2/5] vfio: spapr: Add DMA memory preregistering (SPAPR IOMMU v2), Alexey Kardashevskiy, 2016/07/03
- Re: [Qemu-ppc] [PATCH qemu v19 0/5] spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW), David Gibson, 2016/07/05