vfio-pci 设备特定驱动变体的验收标准

概述

vfio-pci 驱动作为一个设备无关的驱动存在,它使用系统 IOMMU 并依赖平台故障处理的稳健性,为用户空间提供隔离的设备访问。 虽然 vfio-pci 驱动确实包含一些设备特定的支持,但对更多高级设备特定功能的进一步扩展是不可持续的。 因此,vfio-pci 驱动已将 vfio-pci-core 分离出来作为一个库,可以重用它来实现需要设备特定知识的功能,例如为了支持迁移而保存和加载设备状态。

为了支持这些功能,预计一些设备特定的变体可能会与父设备交互(例如,SR-IOV PF 用于支持用户分配的 VF),或者其他可能无法通过 vfio-pci 基本驱动访问的扩展。 这些驱动的作者应勤勉地避免通过这些交互创建可利用的接口,或允许未经检查的用户空间数据对超出指定设备范围产生影响。

因此,新的驱动程序提交需要通过对与父驱动程序进行的任何交互的签名/确认/审查等方式获得批准。 此外,驱动程序应尝试为审阅者提供足够的文档来了解设备特定的扩展,例如,在迁移数据的情况下,设备状态是如何组成和使用的,哪些部分是用户无法通过 vfio-pci 访问的,存在哪些保护措施来验证数据等等。 在这方面,作者还应预期需要至少一位列出的审阅者以及整体 vfio 维护者的审查。