SR-IOV允许PCIe设备公开单个物理功能和多个虚拟功能。内核如何检测设备是否支持虚拟功能?它是PCIe配置寄存器的一部分吗?在内核中哪些设备测试了它们导出的函数数量?
编辑:我在内核源代码中寻找一行代码(或文件)来检查PCIe设备,以确定它导出的虚拟功能的数量。我还想找到一个指向相应标准的链接,该标准列出了设备需要发送给主机的信息,以便报告它支持多个虚拟功能。答案 0 :(得分:2)
支持SR-IOV的设备定义了SR-IOV功能(扩展功能ID 10h)。
这在PCI Express Base规范修订版4.0的第9章中有详细说明。我不确定你是否可以在网上找到免费的副本;您可能需要成为PCI-SIG成员。
在Linux内核中,在drivers / pci / iov.c中查找PCI_EXT_CAP_ID_SRIOV和PCI_SRIOV_TOTAL_VF。