qemu/include/hw/virtio
Jason Wang c471ad0e9b vhost_net: device IOTLB support
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>
2017-01-18 22:59:53 +02:00
..
vhost-backend.h vhost_net: device IOTLB support 2017-01-18 22:59:53 +02:00
vhost-scsi.h vhost-scsi: include linux/vhost.h 2015-09-25 12:04:41 +02:00
vhost-vsock.h vhost-vsock: add virtio sockets device 2016-09-10 00:28:08 +03:00
vhost.h vhost_net: device IOTLB support 2017-01-18 22:59:53 +02:00
virtio-access.h virtio: convert to use DMA api 2017-01-10 05:56:58 +02:00
virtio-balloon.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-blk.h virtio-blk: make some functions static 2016-10-10 01:16:58 +03:00
virtio-bus.h virtio: convert to use DMA api 2017-01-10 05:56:58 +02:00
virtio-crypto.h virtio-crypto: using bh to handle dataq's requests 2016-11-01 19:21:08 +02:00
virtio-gpu.h virtio-gpu: track and limit host memory allocations 2016-12-20 14:19:08 +01:00
virtio-input.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-net.h virtio-net: Add MTU feature support 2017-01-10 07:02:53 +02:00
virtio-rng.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-scsi.h virtio: set ISR on dataplane notifications 2016-11-18 17:29:25 +02:00
virtio-serial.h virtio-serial: enable virtio console emergency write feature 2016-10-10 01:16:57 +03:00
virtio.h virtio: Introduce virtqueue_drop_all procedure 2017-01-10 07:02:53 +02:00