知识卡片

VT-d用域隔离保护透传DMA

专业/工作 · 1113.c

内容

客户机直接对话I/O设备(透传)会碰到一个根本问题:客户机给设备的地址是客户机自己的物理地址,设备发起DMA时用这个地址访问真实内存必然出错,因为该地址对宿主机毫无意义。VT-d在芯片组加了一层DMA重映射硬件,拦截设备发起的每次DMA,按该设备的IO页表把客户机物理地址翻译成宿主机物理地址。更进一步,VT-d引入”域”概念——每个虚拟机是独立的域,分配给某域的设备只能访问该域内存,即使设备被完全交给客户机控制,也无法越权碰到其他虚拟机或宿主机的内存。

参考来源

《深入浅出DPDK》第10章《X86平台上的I/O虚拟化》