T-Head原型为虚拟IOMMU提供创新的硬件支持

最近,t-head 完成了基于 qemu 的虚拟机虚拟 iommu 硬件支持的概念验证,基于 t-head iommu 提案中的规范在其成立时提交给 iommu tg 作为其中之一候选人提案。 t-head iommu 的虚拟 iommu 设计展示了一种向虚拟机公开与主机使用的虚拟 iommu 相同的虚拟 iommu 的方法。好处是来宾虚拟机可以直接重新使用完全相同的内核驱动程序,并且消除了传统解决方案中昂贵的基于软件的仿真。
背景
出于性能或安全等原因,可以将物理 i/o 设备配置为由来宾虚拟机直接访问,这种技术被广泛称为设备直通。直通设备受 iommu 转换表的限制,因此它们只能对属于它们所分配到的虚拟机的内存区域执行 dma。从虚拟机的角度来看,直通设备表现为直接访问虚拟机物理地址空间的外围设备。如果不合并 iommu 供虚拟机使用,虚拟机会遇到与主机中的所有设备都不由 iommu 管理的情况相同的不便和缺点。它们不能被进一步分配到虚拟机的用户空间,也不能出于可靠性目的限制它们。
图 1:模拟虚拟 iommu
如图 1 所示,为虚拟机提供 iommu 的传统解决方案是 trap-n-emulate 或半虚拟化。 trap-n-emulate 很昂贵。虽然它向来宾虚拟机提供与主机使用的硬件 iommu 相同的 iommu,但是,来宾对虚拟 iommu 的访问会触发由主机处理的异常。处理是昂贵的。主机不仅需要模拟对虚拟 iommu 寄存器的访问,还需要在虚拟机修改其内存驻留翻译结构时将翻译的两个阶段结合起来。后者是由于现有的硬件 iommu 不直接使用 guest 的转换表,因为硬件只支持一个阶段的地址转换。一些 iommu,例如 arm smmu v3,可以进行嵌套地址转换,也有内核补丁可以直接使用guest的转换表,但是补丁仍然是rfc,估计是硬件架构定义的表结构导致软件交互复杂。
图 2:半虚拟化 iommu
半虚拟化(如图 2 所示)通过要求来宾虚拟机将其 iommu 配置显式传达给主机来减少仿真工作。最大的缺点是需要修改来宾和主机,因此,在某些环境中可能不可用。
t-head 对虚拟 iommu 的硬件支持
t-head的iommu提案试图从硬件架构开始解决上述缺点。简要的想法是指定一个内存区域(称为状态区域),用于呈现给来宾虚拟机的虚拟 iommu 的寄存器状态。同时,主机的表结构包括指向状态区域的指针。当需要转换 dma 请求时,iommu 会查找状态区域,从中获取转换表和来宾虚拟机配置的虚拟 iommu 的状态。随后,硬件 iommu 以与主机结构相同的方式遍历来宾的表结构,将所有地址视为来宾物理地址,即以嵌套转换方式。
图 3:t 头的硬件辅助虚拟 iommu
t-head 的虚拟 iommu(如图 3 所示)避免了昂贵的仿真,因为客户机的配置直接由硬件使用。也就是说,来宾正在与硬件支持的“直通”iommu 进行交互。iommu 的接口由硬件 iommu 直接公开;它与主机的 iommu 相同。主机使用的完全相同的驱动程序可以直接重复使用。使用内存来存储虚拟 iommu 的阶段使解决方案具有可扩展性,而不受寄存器上的资源约束。
原型
我们已经完成了qemu和linux/kvm的概念验证。我们在本机 qemu 中的 iommu 仿真代码中添加了对根据 t-head 的 iommu 规范的嵌套转换的支持。我们以以前的设备直通工作为基础,在 risc-v qemu 中向 vfio 层添加了嵌套的 iommu 支持。iommu 内核驱动程序为 risc-v qemu 公开了一个新的 api,用于管理状态区域并在转换描述符中配置设备 id,新 api 作为名为 /dev/xt_iommu 的设备文件存在,我们覆盖了该文件上的 mmap 和写入处理程序。
未来工作
我们将继续评估和改进当前的原型和设计,包括在 rtl 中实现它。在适当的时候,我们希望将此解决方案贡献给更大的risc-v社区。


小米9se—米酒的小屏版,价格更亲民
唱衰特斯拉的声音高涨,斯特拉真的会就此消失吗?
分享AI大学校长胡郁对AI的现状分析和未来的展望
PowerVR GPU架构的性能优化建议
医疗电子SMT贴片加工的特殊要求
T-Head原型为虚拟IOMMU提供创新的硬件支持
Trench工艺和平面工艺MOS的区别
如何对PIC16F628A的内部EEPROM执行基本的读写操作
苹果产线开始准备Plan B,传OV魅族有望加入鸿蒙生态
蓝牙调光器是什么,它都有什么特点
电子元器件涨价潮蔓延至存储器市场
SSH/Telnet设备远程登录方式实际综合运用
oppor11不止拍照清晰,在性能和游戏体验方面,R11也丝毫不逊色
XG-PON异军突起,现网试点应用已经成熟
SMT锡膏使用方法及注意事项(2023精华版)
AT89S52单片机的引脚说明
电子电路仿真基础:SPICE仿真的收敛性与稳定性
Vishay新的 BiSy两线超低电容ESD保护二极管为高速数据线提供安全保障
高压超结MOSFET轻松解决LED电源浪涌
M12连接器8芯的更换步骤和注意事项