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

概述

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

为了支持这些功能,预计一些设备特定的变体可能会与父设备(例如,为了支持用户分配的 VF 而与 SR-IOV PF 交互)或其他无法通过 vfio-pci 基础驱动程序访问的扩展进行交互。此类驱动程序的作者应当审慎行事,不要通过这些交互创建可被利用的接口,也不要允许未经检查的用户空间数据产生超出分配设备范围的影响。

因此,要求新驱动提交在与父驱动进行任何交互时,必须通过签核/确认/审核等方式获得批准。此外,驱动程序作者应尽量提供充分的文档,以便审核人员理解这些设备特定的扩展;例如,在迁移数据的案例中,设备状态是如何构成和使用的,哪些部分是用户无法通过 vfio-pci 获取的,存在哪些验证数据的保障措施,等等。为此,作者除了需要获得整体 vfio 维护者的审核外,还应预期需要至少一位列出的审核人员的审核。