1. 10 6月, 2014 1 次提交
  2. 09 6月, 2014 11 次提交
  3. 06 6月, 2014 9 次提交
  4. 05 6月, 2014 2 次提交
  5. 04 6月, 2014 7 次提交
  6. 02 6月, 2014 7 次提交
  7. 31 5月, 2014 3 次提交
    • D
      vfio: Add guest side IOMMU support · 5e70018b
      David Gibson 提交于
      This patch uses the new IOMMU notifiers to allow VFIO pass through devices
      to work with guest side IOMMUs, as long as the host-side VFIO iommu has
      sufficient capability and granularity to match the guest side. This works
      by tracking all map and unmap operations on the guest IOMMU using the
      notifiers, and mirroring them into VFIO.
      
      There are a number of FIXMEs, and the scheme involves rather more notifier
      structures than I'd like, but it should make for a reasonable proof of
      concept.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      5e70018b
    • D
      vfio: Create VFIOAddressSpace objects as needed · 0688448b
      David Gibson 提交于
      So far, VFIO has a notion of different logical DMA address spaces, but
      only ever uses one (system memory).  This patch extends this, creating
      new VFIOAddressSpace objects as necessary, according to the AddressSpace
      reported by the PCI subsystem for this device's DMAs.
      
      This isn't enough yet to support guest side IOMMUs with VFIO, but it does
      mean we could now support VFIO devices on, for example, a guest side PCI
      host bridge which maps system memory at somewhere other than 0 in PCI
      space.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      0688448b
    • D
      vfio: Introduce VFIO address spaces · 3df3e0a5
      David Gibson 提交于
      The only model so far supported for VFIO passthrough devices is the model
      usually used on x86, where all of the guest's RAM is mapped into the
      (host) IOMMU and there is no IOMMU visible in the guest.
      
      This patch begins to relax this model, introducing the notion of a
      VFIOAddressSpace.  This represents a logical DMA address space which will
      be visible to one or more VFIO devices by appropriate mapping in the (host)
      IOMMU.  Thus the currently global list of containers becomes local to
      a VFIOAddressSpace, and we verify that we don't attempt to add a VFIO
      group to multiple address spaces.
      
      For now, only one VFIOAddressSpace is created and used, corresponding to
      main system memory, that will change in future patches.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      3df3e0a5