From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b15lg-0004ax-Fn for qemu-devel@nongnu.org; Fri, 13 May 2016 01:36:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b15lc-0001gU-6M for qemu-devel@nongnu.org; Fri, 13 May 2016 01:36:07 -0400 Date: Thu, 12 May 2016 23:36:00 -0600 From: Alex Williamson Message-ID: <20160512233600.2d4a0a0f@t450s.home> In-Reply-To: References: <1462344751-28281-1-git-send-email-aik@ozlabs.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH qemu v16 00/19] spapr: vfio: Enable Dynamic DMA windows (DDW) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: Paolo Bonzini , David Gibson , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Alexander Graf 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 > > > >