【问题标题】:How do PCIe devices advertise multiple virtual functions to Linux?PCIe 设备如何向 Linux 通告多个虚拟功能?
【发布时间】:2018-02-16 17:24:42
【问题描述】:

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

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

【问题讨论】:

    标签: linux-kernel linux-device-driver pci-e vfio


    【解决方案1】:

    支持 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。

    【讨论】:

    • 完美,正是我想要的。谢谢!
    • 查看“PCI Express Base Specification revision 4 ver 0.3”的版本,我将第 9 章视为“物理层电气子模块规范”。我有错误的文件吗?
    • 哦,现在我有了“ver 1.0”,我看到了您正在谈论的部分——“单根 I/O 虚拟化和共享”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2019-12-23
    • 1970-01-01
    • 2019-06-13
    • 2016-04-25
    • 2015-09-18
    相关资源
    最近更新 更多