2

我目前正在研究具有 2 个节点的 NUMA 系统。我有一个指向某个内存的指针,但我不知道它在哪个节点。有什么办法可以得到内存的节点号?

(获取当前线程的节点掩码不起作用的原因是,该节点的内存已满,因此即使该线程与当前节点有关联,它仍然可能在相邻节点上分配内存。因此,我正在寻找一种直接获取内存位置的方法。)

4

2 回答 2

0

您可能需要检查 NUMA API: http: //linux.die.net/man/3/numa。从粗略的外观来看,numa_alloc_onnode()numa_get_run_node_mask()脱颖而出。

可能是 API 中的一些函数组合可以帮助您解决您想知道节点号的原因。

于 2014-06-27T09:43:39.473 回答
0

这在 Linux 上使用numa_move_pages. 这只是移动页面的糖。如果你不向它传递任何节点,它会返回 status 中指针的 N​​UMA 节点的 id。请注意,您的指针需要指向驻留在物理内存中的页面(即已经出现页面错误),否则您将获得 ENOENT。

于 2015-11-20T17:10:57.547 回答