This patch is based on Aviv Ben-David (<address@hidden>)'s patch
upstream:
"IOMMU: enable intel_iommu map and unmap notifiers"
https://lists.gnu.org/archive/html/qemu-devel/2016-11/msg01453.html
However I removed/fixed some content, and added my own codes.
Instead of translate() every page for iotlb invalidations (which is
slower), we walk the pages when needed and notify in a hook function.
This patch enables vfio devices for VT-d emulation.
And, since we already have vhost DMAR support via device-iotlb, a
natural benefit that this patch brings is that vt-d enabled vhost can
live even without ATS capability now. Though more tests are needed.
Reviewed-by: Jason Wang <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
---
hw/i386/intel_iommu.c | 191 ++++++++++++++++++++++++++++++++++++++---
hw/i386/intel_iommu_internal.h | 1 +
hw/i386/trace-events | 1 +
include/hw/i386/intel_iommu.h | 8 ++
4 files changed, 188 insertions(+), 13 deletions(-)