[PATCH RFC 0/3] virtio-pci: iommu support

From: Michael S. Tsirkin
Date: Mon Apr 18 2016 - 05:58:18 EST


This is an attempt to allow enabling IOMMU for DMA.
Design:
- new feature bit IOMMU_PLATFORM which means
host won't bypass IOMMU
- virtio core uses DMA API if it sees IOMMU_PLATFORM
- add quirk for vfio to disable device unless IOMMU_PLATFORM is set
or the no-iommu mode is enabled
- while I'm not sure how it will be used, it seems like a good idea to
also have ability to distinguish between a legacy device and one
where iommu is bypassed intentionally. To this end, add another feature bit
IOMMU_PASSTHROUGH. We don't acknowledge it if IOMMU_PLATFORM is set.

TODO:
- I'm not sure whether there are setups that mix IOMMU
and no-IOMMU configs. If so, failing on probe might not
be the right thing to do, should fail binding to IOMMU group instead.


Michael S. Tsirkin (3):
virtio: add features for IOMMU control
vfio: report group noiommu status
vfio: add virtio pci quirk

drivers/vfio/pci/vfio_pci_private.h | 1 +
include/uapi/linux/virtio_config.h | 10 +-
drivers/vfio/pci/vfio_pci.c | 13 ++-
drivers/vfio/pci/vfio_pci_virtio.c | 142 +++++++++++++++++++++++++++
drivers/vfio/platform/vfio_platform_common.c | 2 +-
drivers/vfio/vfio.c | 5 +-
drivers/virtio/virtio_ring.c | 18 +++-
Documentation/vfio.txt | 4 +-
drivers/vfio/pci/Makefile | 1 +
9 files changed, 190 insertions(+), 6 deletions(-)
create mode 100644 drivers/vfio/pci/vfio_pci_virtio.c

--
MST