繼最近的 AMD IOMMU v2 頁表工作和其他 IOMMU 改進(作為 AMD 進一步增強 EPYC 服務器平台上的 Linux 虛擬化支持的一部分)之後,AMD 昨天發布的最新補丁適用於硬件加速虛擬化 IOMMU(AMD HW-vIOMMU)。
AMD 硬件加速虛擬化 IOMMU 功能提供部分硬件加速,用於通過虛擬化來賓命令緩衝區、來賓事件日誌和來賓 PPR 日誌來實現來賓 IOMMU。最終的工作是提高 PCI 直通 I/O 性能,同時仍然提供來賓 I/O 保護。
AMD Linux 工程師 Suravee Suthikulpanit 週三發布的補丁系列進一步補充道:
“此外,此功能可以與嵌套 IOMMU 頁表結合使用,以從 GIOVA 到 GPA 的加速地址轉換。在這種情況下,主機頁表(又名 stage2 或 v1)由虛擬機管理程序(即 KVM/VFIO)管理,而來賓頁表(又名 stage1 或 v2)由來賓 IOMMU 管理驅動程序(例如,使用 amd_iommu=pgtable_v2 模式啟動 guest 內核時)。
由於 IOMMU 硬件虛擬化 guest 命令緩衝區,因此可以加速 IOMMU 操作,例如在命令發出時使 guest 頁面(即 stage1)失效來賓內核無需虛擬機管理程序的干預。
該系列是在 IOMMUFD 框架之上實現的,它利用現有的 API 和 ioctl 來提供 guest iommu 信息(即struct iommu_hw_info_amd),並允許 guest 提供 guest 頁表信息(即 struct iommu_hwpt_amd_v2)以設置用戶域。”
AMD IOMMU 在這個方向上的工作已經進行了一段時間,因此很高興看到它越來越近。
早在 2021 年,AMD 就在 kVM 論壇會議圍繞當時的原型工作。週三的 補丁仍被標記為“徵求意見”,因為它們最終確定了實現,並希望在不久的將來到達主線 Linux 內核。