[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 00/10] virtio-iommu: VFIO integration
From: |
Jean-Philippe Brucker |
Subject: |
[PATCH v10 00/10] virtio-iommu: VFIO integration |
Date: |
Thu, 8 Oct 2020 19:15:48 +0200 |
This series adds support for VFIO endpoints to virtio-iommu.
Versions 1 to 9 were posted by Bharat Bhushan, but I am taking over for
now since he doesn't have much time to spend on it. Thanks again Bharat
for the work!
Two major changes since [v9]:
* Don't use per-endoint page_size_mask properties. Instead keep a global
page size for the virtio-iommu device, updated when adding a VFIO
endpoint. Reject hotplug if the page size is incompatible.
* Try to make the MAP/UNMAP paths more efficient, by keeping track of
memory region within the endpoint structure.
More testing would be appreciated, since I can only test using a software
model as host at the moment. But it does seem to hold well with PCIe
hotplug/unplug, and pass-through to guest userspace, which are no mean
feat.
Note that one page size combination is not supported: host 64kB guest
4kB cannot work, because the host IOMMU driver will automatically pick
64kB pages which prevents mapping at a smaller granule. Supporting this
case would require introducing a page size negotiation mechanism from
the guest all the way to the host IOMMU driver. Possible, but not
planned at the moment.
[v9]
https://lore.kernel.org/qemu-devel/20200323084617.1782-1-bbhushan2@marvell.com/
Bharat Bhushan (7):
virtio-iommu: Add memory notifiers for map/unmap
virtio-iommu: Call memory notifiers in attach/detach
virtio-iommu: Add replay() memory region callback
virtio-iommu: Add notify_flag_changed() memory region callback
memory: Add interface to set iommu page size mask
vfio: Set IOMMU page size as per host supported page size
virtio-iommu: Set supported page size mask
Jean-Philippe Brucker (3):
virtio-iommu: Fix virtio_iommu_mr()
virtio-iommu: Store memory region in endpoint struct
vfio: Don't issue full 2^64 unmap
include/exec/memory.h | 26 +++++
hw/vfio/common.c | 19 ++++
hw/virtio/virtio-iommu.c | 204 ++++++++++++++++++++++++++++++++++++++-
softmmu/memory.c | 13 +++
hw/virtio/trace-events | 5 +
5 files changed, 265 insertions(+), 2 deletions(-)
--
2.28.0
- [PATCH v10 00/10] virtio-iommu: VFIO integration,
Jean-Philippe Brucker <=