目录
IOMMU — CPU 硬件支撑的 I/O 虚拟化方案
需求背景
多个虚拟机共享服务器中的物理网卡,该场景中需要一种机制既能保证 I/O 的效率,又要保证多个虚拟机对用物理网卡共享使用。I/O 虚拟化的出现就是为了解决这类问题。
DMA Remapping Feature
从 CPU 的角度看,为了解决虚拟机访问物理网卡等 I/O 设备的性能问题,就是要避免 VMM 对 CPU 指令的捕获/翻译、上下文切换、内存拷贝等损耗,于是提出了 DMA Remapping Feature(DMA(直接存储器存取)的重映射功能),即:虚拟机可以通过 DMA Remapping Feature 直接访问到宿主机的物理网卡设备的内存空间,且进行安全访问,故称这段地址空间为:虚拟机对网卡访问的 DMA 保护域。
DMA Remapping Feature 主要解决了两个问题:
- 一方面为每个虚拟机创建了一个 DMA 保护域并实现了安全的隔离。
- 另一方面提供一种机制是将虚拟机的 Guest Physical Address 翻译为物理机的 Host Physical Address。从而虚拟机访问自