Linux kernel PCIe设备如何向Linux发布多个虚拟功能?

Linux kernel PCIe设备如何向Linux发布多个虚拟功能?,linux-kernel,linux-device-driver,pci-e,vfio,Linux Kernel,Linux Device Driver,Pci E,Vfio,SR-IOV允许PCIe设备公开单个物理功能和多个虚拟功能。内核如何检测设备支持虚拟功能?它是PCIe配置寄存器的一部分吗?内核中的哪些设备测试它们导出了多少函数 编辑:我正在内核源代码中查找一行代码(或一个文件),用于检查PCIe设备,以确定其导出多少虚拟函数。我还需要一个到适当标准的链接,该链接列出了设备需要发送到主机的信息,以便报告它支持多个虚拟功能。支持SR-IOV的设备定义了SR-IOV功能(扩展功能ID 10h) PCI Express基本规范4.0版第9章对此进行了规定。我不确定你

SR-IOV允许PCIe设备公开单个物理功能和多个虚拟功能。内核如何检测设备支持虚拟功能?它是PCIe配置寄存器的一部分吗?内核中的哪些设备测试它们导出了多少函数


编辑:我正在内核源代码中查找一行代码(或一个文件),用于检查PCIe设备,以确定其导出多少虚拟函数。我还需要一个到适当标准的链接,该链接列出了设备需要发送到主机的信息,以便报告它支持多个虚拟功能。

支持SR-IOV的设备定义了SR-IOV功能(扩展功能ID 10h)

PCI Express基本规范4.0版第9章对此进行了规定。我不确定你是否能在网上找到一本免费的;您可能需要成为PCI-SIG会员


在Linux内核中,在drivers/PCI/iov.c.中查找PCI_EXT_CAP_ID_SRIOV和PCI_SRIOV_TOTAL_VF.

完美,正是我想要的。谢谢查看“PCI Express基本规范第4版0.3版”的一个版本,我将第9章视为“物理层电气子块规范”。我是否有错误的文档?哦,现在我有了“1.0版”,我看到了您正在谈论的部分--“单根I/O虚拟化和共享”