On Fri, 13 May 2016 14:54:52 +1000
Alexey Kardashevskiy wrote:
> Alex W,
>
> could you please review VFIO-related chunks? Thanks!
https://lists.nongnu.org/archive/html/qemu-devel/2016-05/msg00744.html
https://lists.nongnu.org/archive/html/qemu-devel/2016-05/msg00745.html
> On 05/04/2016 04:52 PM, Alexey Kardashevskiy wrote:
> > 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 the latest upstream.
> >
> > This includes "vmstate: Define VARRAY with VMS_ALLOC" as it has been
> > accepted
> > but has not been merged to upstream yet.
> >
> > Please comment. Thanks!
> >
> >
> > Paolo, I did cc: you on this because of 02/19 and 03/19, would be great to
> > get an opinion as the rest of the series relies on it to do
> > vfio-pci hot _un_plug properly. Thanks!
> >
> >
> > Alexey Kardashevskiy (19):
> > vfio: Delay DMA address space listener release
> > memory: Call region_del() callbacks on memory listener unregistering
> > memory: Fix IOMMU replay base address
> > vmstate: Define VARRAY with VMS_ALLOC
> > vfio: Check that IOMMU MR translates to system address space
> > spapr_pci: Use correct DMA LIOBN when composing the device tree
> > 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 DMA memory preregistering (SPAPR IOMMU v2)
> > 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
> > 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| 5 +
> > hw/ppc/spapr_iommu.c | 228 --
> > hw/ppc/spapr_pci.c| 96 +
> > hw/ppc/spapr_rtas_ddw.c | 292 ++
> > hw/ppc/spapr_vio.c| 8 +-
> > hw/vfio/Makefile.objs | 1 +
> > hw/vfio/common.c | 319
> > +++---
> > hw/vfio/prereg.c | 137 ++
> > include/exec/memory.h | 22 ++-
> > include/hw/pci-host/spapr.h | 10 +-
> > include/hw/ppc/spapr.h| 31 +++-
> > include/hw/vfio/vfio-common.h | 21 ++-
> > include/migration/vmstate.h | 10 ++
> > memory.c | 64 -
> > target-ppc/kvm_ppc.h | 2 +-
> > trace-events | 12 +-
> > 17 files changed, 1120 insertions(+), 139 deletions(-)
> > create mode 100644 hw/ppc/spapr_rtas_ddw.c
> > create mode 100644 hw/vfio/prereg.c
> >
>
>