KVM-具有直通设备的DMA

问题描述 投票:3回答:1

我有几个假设,如果我错了,请纠正我:

  1. 没有真正的IOMMU,DMA传输将存在安全风险,因为来宾可以在主机内存中传输垃圾。
  2. 没有真正的IOMMU的来宾存储器和直通设备之间的有效DMA传输是不可能的。
  3. 主机操作系统不知道与直通设备有关的任何与DMA相关的事物

现在有一些问题:

  • 与第3点有关:是否有办法通过直通设备获取有关DMA传输的任何信息?
  • 如果我没有DMA重新映射,KVM会抱怨吗?
  • 是否有可能拒绝具有直通设备的来宾使用任何与DMA相关的东西?
device qemu kvm dma pass-through
1个回答
3
投票

在做一些研究时遇到了这个老问题,并认为我会为有兴趣的人提供答案。

关于第1点。没有IOMMU,您根本无法进行直通。 I / O设备在内核空间中。来宾内核是一个用户进程,仅认为它在内核空间中运行。

关于问题:

使用仿真设备,仿真器代码将拦截所有DMA设置,并可以确保它们是有效的。通过PCI直通,寄存器的读写直接进入设备,或者直接进入设备上用于SR-IOV的VF,因此KVM或来宾外部的任何其他代码都没有机会进行验证,发出错误或投诉。

© www.soinside.com 2019 - 2024. All rights reserved.