我尝试浏览 numa_distance() 和其他相关函数(来自第一个链接),但无法理解。我只是想了解 linux 如何计算两个节点之间的 NUMA 距离,据说这个距离根据架构和 NUMA 互连而变化。
我引用了以下链接:
最佳答案
在 ACPI 规范(最新版本)中,您会找到一个名为“SLIT”/系统位置(距离)信息表的表的描述。该表只是一个数组(如 d = array[numa_node][numa_node]
),操作系统用它来确定任意 2 个 NUMA 节点之间的相对距离;其中数组中的值范围为 10 到 254(255 用于“这些 NUMA 域之间没有连接”),其中值 10 表示 NUMA 域中的某些内容可以多快地访问同一 NUMA 域中的某些内容(最快的情况),值 254 会慢 25.4 倍。
我假设固件使用硬编码值填充此表 - 例如主板制造商可能会进行一些测量并确定对于主板支持的所有 CPU 型号来说足够好的值。
固件向操作系统提供此表。操作系统不计算任何内容。
关于linux - linux如何计算两个numa节点之间的numa距离(任何numa库的内部逻辑,例如libnuma..etc)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355785/