Hi, This fixes an DMA failure issue in guest when user switch domain manually. E.g., echo [DMA|identity] > /sys/kernel/iommu_groups/6/type
First two patches come from [PATCH v6 00/22] intel_iommu: Enable first stage translation for passthrough device which added basic support for pasid cache invalidation, the 3rd patch add a fix. Test: both vhost network card and VFIO device, guest config with and without iommu=pt, switch domain with echo [DMA|identity] > /sys/kernel/iommu_groups/6/type, ping test under different domain Thanks Zhenzhong Changelog: v2: - drop extract64 usage in patch1 (Liuyi) - update DID check logic (Liuyi) - refactor comments (Liuyi) - rewrite patch2 with simpler code - bypass vtd_address_space_sync() when pasid entry is invalid Zhenzhong Duan (3): intel_iommu: Handle PASID cache invalidation intel_iommu: Reset pasid cache when system level reset intel_iommu: Fix DMA failure when guest switches IOMMU domain hw/i386/intel_iommu_internal.h | 17 ++++ include/hw/i386/intel_iommu.h | 6 ++ hw/i386/intel_iommu.c | 173 +++++++++++++++++++++++++++++++-- hw/i386/trace-events | 4 + 4 files changed, 190 insertions(+), 10 deletions(-) -- 2.47.1
