【发布时间】:2021-10-07 21:16:44
【问题描述】:
我几乎需要和Programmatically determine NUMA node or PCI bus, device, function number of Direct3D9Ex device一样的东西
我正在寻找一种以编程方式确定特定 PCI 设备连接到哪个 NUMA 节点的方法,以便我可以为该节点上的主机到设备传输分配内存。
因此,我的代码会打开一个设备文件,例如/dev/mydev0、/dev/mydev1 等。我可以拥有其中的几个设备文件,它们可以位于不同的 NUMA 节点上。我需要弄清楚的是应用程序代码中该设备所属的NUMA节点(如果有)。
我正在为这些设备编写设备驱动程序。我了解device_create 返回的struct device 的指针具有该字段
#ifdef CONFIG_NUMA;
int numa_node;
#endif;
我的想法是通过自定义驱动程序中的自定义 ioctl 调用导出该值。
我要问的是,是否有更标准的方法可以将 /dev 条目映射到 NUMA 节点,以便 应用程序 可以解决这个问题并使用类似 numa_bind 这样的东西内存分配发生在正确的节点上。
我还了解到,我可以使用lspci 检查 PCI 设备的 NUMA 节点。根据/dev 条目,我不知道如何使用它。
谢谢!
【问题讨论】: