我有几个假设,请纠正我,如果我错了:
现在有些问题:
答案 0 :(得分:3)
在进行一些研究时遇到这个老问题,并认为我会为任何感兴趣的人发布答案。
关于第1点。没有IOMMU,你根本无法做到直通。 I / O设备位于内核空间中。来宾内核是一个只认为它在内核空间中运行的用户进程。
关于问题:
使用仿真设备,仿真器代码会拦截所有DMA设置,并确保它们有效。通过PCI直通,寄存器读取和写入将直接发送到设备,或者发送到设备上的VF以用于SR-IOV,因此KVM或guest虚拟机外的任何其他代码都无法验证,出错或抱怨。