• J
    vhost_net: device IOTLB support · c471ad0e
    Jason Wang 提交于
    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: NJason Wang <jasowang@redhat.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
    c471ad0e
vhost_net.c 12.8 KB