RISC-V 是一款开源的精简指令集架构,允许衍生设计和开发闭源,具备灵活、开放、可扩展等特性。近年来,RISC-V 架构已经在学术圈和开源社区中获得了广泛的关注,目前产业生态正呈现蓬勃发展的态势。
在第 19 届中国 Linux 内核开发者大会上,玄铁 Linux 内核负责人郭任以“RISC-V IOMMU 的 Scalable 提案(GIPC) 及 Linux 技术路线”为题,从 PASID 的介绍、Scalable Mode 提案和 Linux 技术路线三个方面,为观众循序渐进地介绍了玄铁团队引入 GIPC 的动机以及技术特点,探讨了 GIPC 的落地场景,并分享了 Linux 的两条技术路线。
基于此,CSDN 有幸专访了郭任,旨在通过郭任的专业视角,为行业内外人士提供关于 RISC-V IOMMU 和 GIPC 提案的深入见解,探讨并解答关于 RISC-V IOMMU 标准制定过程中的关键问题,以及 GIPC 提案的实际应用挑战和未来发展方向。
一、达摩院玄铁:引领 RISC-V IOMMU 标准制定
CSDN:达摩院玄铁团队在 RISC-V IOMMU 标准制定过程中具体做出了哪些重要贡献?
郭任:2021 年时,RVI 基金会开始筹备 RISC-V IOMMU Task Group。共有 5 个单位提出了 IOMMU 方案,分别是 Rivos,SiFive,Ventana,Thales 以及达摩院玄铁团队。经过多轮会议讨论,权衡各方意见后,形成了如今的 RISC-V IOMMU 初版规范。因此,达摩院玄铁是 RISC-V IOMMU 规范的重要贡献者之一,并与国内知名操作系统开源社区龙蜥社区(OpenAnolis)一起积极完善该规范。
CSDN:GIPC 提案的核心驱动因素是什么?它主要解决什么问题?
郭任:云计算正面临管理不断扩大的资源池挑战,容器与 FaaS 服务等软件模型已广泛应用于整个行业,这种超大规模“虚拟化+容器化”工作负载所需的隔离域数量比传统数据中心解决方案高出一个数量级。为应对虚拟化和容器化的持续增长需求,硬件供应商将 IOMMU 与 PCIe/CXL 等技术紧密结合,推出了多种行业标准及解决方案。
基于此,达摩院玄铁团队与龙蜥社区合作,共同提出 GIPC 方案(G-stage page table In Process Context),解决了 RISC-V IOMMU 对于 PASID 虚拟设备无法跨虚拟机分配的问题。在此之前,RISC-V IOMMU 仅支持 GIDC(G-stage page table In Device Context),这意味着整个 PASID 表只能服务于单一虚拟机,从而限制了 RISC-V IOMMU 的应用场景。
二、GIPC :融合优势,革新云计算资源管理
CSDN:为何称 GIPC 提案能巧妙地融合不同技术流派的特点?其具体优势是什么?
郭任:业界对 PCIe 规范中 PASID 的理解存在分歧:以 Intel VT-d 为代表的技术流派提出了 Scalable IOMMU 模式,允许 PASID 表中的虚拟设备跨虚拟机分配;而 AMD VI 和 ARM SMMU 则采取了另一种方法,将 PASID 表绑定到特定虚拟机上,并由该虚拟机自行管理。而达摩院玄铁团队与龙蜥社区合作的 GIPC 提案,通过改进 RISC-V IOMMU 页表结构,以同时支持 GIPC 和 GIDC 两种模式,巧妙地结合了这两种技术路径的优点,满足了不同应用场景下对IOMMU的需求。
CSDN:面对云计算中资源池管理日益扩大的挑战,GIPC 提案能够带来哪些具体且实质性的改进?
郭任:例如,在加速器场景下物理设备可能只有一个,但成千上万的虚拟机、容器和进程都需要使用该设备进行加密解密、压缩解压、数据传输比较等功能。因此,基于 PCIe PASID 机制的轻量级共享队列虚拟设备越来越受到重视。GIPC 在原有的 RISC-V IOMMU GIDC 基础上增加了灵活性,使得这些虚拟设备可以被跨虚拟机分配,进而让 VMM 统一管理成为可能。
三、RISC-V IOMMU 未来方向:GIPC 与 GIDC 共存
CSDN: 当前 RISC-V IOMMU 处于什么样的发展阶段?未来发展方向是什么?GIPC 将在其中扮演何种关键角色?
郭任:目前,RISC-V IOMMU 已经完成了规范定义并对外发布,各大 RISC-V 厂商正在根据这一标准开发各自的商业化 IOMMU 产品。尽管截至目前还没有任何一款 RISC-V IOMMU 芯片正式上市,但我们注意到如 virtio-IOMMU 这样的第三方规范已经开始采纳 RISC-V IOMMU 规范。预计未来 RISC-V IOMMU 将会逐渐普及,并与 Intel VT-d、AMD Vi 以及 Arm SMMU 共同成为业界主流 IOMMU 方案之一。GIPC 将进一步推动 RISC-V IOMMU 更好地适应 PASID 设备的应用场景。
CSDN:从技术角度来看,GIPC 提案如何影响 Linux IOMMU 的发展路线?
郭任:过去由于 Intel VT-d 与 Arm SMMU 对于 PASID 表处理方式的不同,导致 Linux IOMMU 驱动出现了两种不同的实现方案。而 RISC-V IOMMU 提出的 GIPC 与 GIDC 共存方案,则要求 Linux IOMMU 驱动能够在同一主机上同时支持这两种功能。
CSDN:在推进 GIPC 与 GIDC 实际应用的过程中,预期会遇到哪些挑战?又该如何应对?
郭任:现阶段 Linux IOMMU 对于 GIPC 或 GIDC 的选择仍然是二选一的方式,要在同一台主机上同时启用两者不仅仅需要架构或驱动层面的变化,还需要对公共框架做出适当调整。应对策略是尽量减少对公共层的改动,同时确保继续支持 Intel VT-d 以及 Arm SMMU/AMD Vi 现有方案。