mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-02 04:30:32 -07:00
This patches implements Device IOTLB support for vhost kernel. This is done through: 1) switch to use dma helpers when map/unmap vrings from vhost codes 2) introduce a set of VhostOps to: - setting up device IOTLB request callback - processing device IOTLB request - processing device IOTLB invalidation 2) kernel support for Device IOTLB API: - allow vhost-net to query the IOMMU IOTLB entry through eventfd - enable the ability for qemu to update a specified mapping of vhost - through ioctl. - enable the ability to invalidate a specified range of iova for the device IOTLB of vhost through ioctl. In x86/intel_iommu case this is triggered through iommu memory region notifier from device IOTLB invalidation descriptor processing routine. With all the above, kernel vhost_net can co-operate with userspace IOMMU. For vhost-user, the support could be easily done on top by implementing the VhostOps. Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
||
|---|---|---|
| .. | ||
| checksum.c | ||
| clients.h | ||
| colo-compare.c | ||
| colo.c | ||
| colo.h | ||
| dump.c | ||
| eth.c | ||
| filter-buffer.c | ||
| filter-mirror.c | ||
| filter-replay.c | ||
| filter-rewriter.c | ||
| filter.c | ||
| hub.c | ||
| hub.h | ||
| l2tpv3.c | ||
| Makefile.objs | ||
| net.c | ||
| netmap.c | ||
| queue.c | ||
| slirp.c | ||
| socket.c | ||
| tap-aix.c | ||
| tap-bsd.c | ||
| tap-haiku.c | ||
| tap-linux.c | ||
| tap-linux.h | ||
| tap-solaris.c | ||
| tap-win32.c | ||
| tap.c | ||
| tap_int.h | ||
| trace-events | ||
| util.c | ||
| util.h | ||
| vde.c | ||
| vhost-user.c | ||