Hi All, This is an extention to original patch [1] based on discuss in [2].
1. Fixed a potential VFIO migration issue Peter found, and optimize VFIO dirty page sync in intel_iommu incidentally. 2. Clarify the definition of replay() to match existent optimization in intel_iommu. 3. Optimize out some potential UNMAP calls Tested net card passthrough, ping/ssh pass Tested DSA vdev passthrough, start dmatest then do live migration, pass. I checked the LM performance before and after patch, no explicit difference. I think it may because dirty page sync isn't an important factor in LM and it's small in number in my test, 4 or 5. [1] https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg05549.html [2] https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg06708.html Thanks Zhenzhong Duan (4): util: Add iova_tree_foreach_range_data intel_iommu: Fix a potential issue in VFIO dirty page sync memory: Document update on replay() intel_iommu: Optimize out some unnecessary UNMAP calls hw/i386/intel_iommu.c | 75 +++++++++++++++++++++++++++++----------- hw/vfio/common.c | 2 +- include/exec/memory.h | 19 ++++++++-- include/qemu/iova-tree.h | 17 +++++++-- softmmu/memory.c | 4 +++ util/iova-tree.c | 31 +++++++++++++++++ 6 files changed, 122 insertions(+), 26 deletions(-) -- 2.34.1
