From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH 0/4] vfio: type1 multi-domain support & kvm-vfio coherency checking Date: Mon, 17 Feb 2014 13:23:49 -0700 Message-ID: <20140217201324.22775.31904.stgit@bling.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org To: alex.williamson@redhat.com, kvm@vger.kernel.org Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org This series switches the vfio type1 IOMMU backend to support multiple IOMMU domains per container. As outlined in 1/4, this provides several advantages, including supporting features like IOMMU_CACHE and allowing bus_type independence. With such support, we're able to provide an interface to indicate the container is fully cache coherent and export it for use by the external user interface. This allows the kvm-vfio pseudo device to properly test for non-coherent DMA rather than assume it whenever a kvm-vfio device is registered. A change introduced by 1/4 creates a new, v2 type1 IOMMU backend. This type differs subtly in unmap behavior as described in the patch itself. For QEMU use of VFIO, there's no change and switching to v2 is transparent. I'd appreciate any feedback on whether we should simply call the previous behavior broken or if we should do like implemented here and support a compatible mode. Comments welcome. Thanks, Alex --- Alex Williamson (4): vfio/iommu_type1: Multi-IOMMU domain support vfio/type1: Add extension to test DMA cache coherence of IOMMU vfio: Add external user check extension interface kvm/vfio: Support for DMA coherent IOMMUs drivers/vfio/vfio.c | 6 drivers/vfio/vfio_iommu_type1.c | 656 +++++++++++++++++++++------------------ include/linux/vfio.h | 2 include/uapi/linux/vfio.h | 6 virt/kvm/vfio.c | 27 +- 5 files changed, 389 insertions(+), 308 deletions(-)