On Fri, 13 May 2016 14:54:52 +1000 Alexey Kardashevskiy <a...@ozlabs.ru> 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 > > > >