On 2017年01月20日 21:08, Peter Xu wrote:
This patch is based on Aviv Ben-David (<bd.a...@gmail.com>)'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. Signed-off-by: Peter Xu<pet...@redhat.com> --- hw/i386/intel_iommu.c | 66 +++++++++++++++++++++++++++++++++++++------ include/hw/i386/intel_iommu.h | 8 ++++++ 2 files changed, 65 insertions(+), 9 deletions(-)
A good side effect of this patch is that it makes vhost device IOTLB works without ATS (though may be slow). We probably need a better title :)
And I think we should block notifiers during PSI/DSI/GLOBAL for device with ATS enabled.
Thanks