[PATCH v2 0/4] Optimize UNMAP call and bug fix

Zhenzhong Duan posted 4 patches 10 months ago
Failed in applying to current master (apply log)
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Peter Xu <peterx@redhat.com>, Jason Wang <jasowang@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, Alex Williamson <alex.williamson@redhat.com>, "Cédric Le Goater" <clg@redhat.com>, David Hildenbrand <david@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
There is a newer version of this series
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(-)
[PATCH v2 0/4] Optimize UNMAP call and bug fix
Posted by Zhenzhong Duan 10 months ago
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