微软近日向 Linux 内核的 IOMMU 子系统提交了一套 Hyper-V 半虚拟化 IOMMU 驱动,目标是让运行在 Hyper-V 上的 Linux 客户机获得内核级的 DMA 保护,并支持把物理设备直通给用户态程序。该驱动已进入 IOMMU 子系统的 -next 分支,有望随 Linux 7.4 合并窗口合入。

这套驱动做了什么
- 通过
HYPERV_PVIOMMU选项启用,作为 Hyper-V 上的半虚拟化 IOMMU 实现; - 为 Linux 客户机提供内核内的 DMA 保护,让设备的内存访问受 IOMMU 约束,降低越权 DMA 风险;
- 支持将 VFIO 设备直通到用户态,兼顾虚拟机的性能与隔离需求。
适配与验证
该驱动同时对接了 Intel VT-d 与 AMD IOMMU 两套框架,微软方面表示已使用 NVMe 存储与 Intel DSA 加速器进行过验证。相关 RFC 最早可追溯到 2023 年 12 月,历经多轮评审后进入 -next。
意义
对云与服务器场景而言,客户机既能获得接近原生的 I/O 性能,又能保持设备访问的可控与安全。这也是微软在虚拟化领域持续“双向投入”的又一例证:一边把 Hyper-V 的关键能力上游化到 Linux 内核,一边让 Linux 更好地运行在自己的云平台上。
该驱动进入 IOMMU 子系统的 next 分支,预计随 Linux 7.4 合并窗口合入。
—— 综合 Phoronix 与内核邮件列表
参考来源:Phoronix、kernel.org IOMMU -next 分支。