1

我将 libnuma 用于增强的 NUMA 感知分配器。如“numa 手册页”或 libnuma API 中所述,有些功能不起作用。准确地说,我在使用这些功能时遇到了问题:numa_get_run_node_mask()numa_node_to_cpus().
关于前者,阅读 API 和手册,它说它返回 a struct bitmask *,而编译器要求 a nodemask_t
后者应该需要两个参数,如 API 定义的那样,但编译器要求三个。如果我传递三个参数——在我在源代码定义中找到的这个声明之后:numa_node_to_cpus_v1(int node, unsigned long *buffer, int bufferlen)——我每次都会得到一个段错误,无论我使用什么 bufferlen

顺便提一下,后一个功能与您键入命令时numa_node_to_cpus()的用途相同:它用于检索节点中的所有cpu。我通读了源代码,它与两个参数一起正常工作。numactlnumactl --hardwareint node, struct bitmask *mask

也许有需要修复的错误,或者通过 libnuma 版本更改的 API 和源之间的一些差异。(顺便说一句,我如何检查机器上正在运行哪个 libnuma/numactl?我在服务器上远程工作,numactl似乎没有--version选项!)

4

0 回答 0