我已经查找了 X86-64 处理器的 NUMA 文档,不幸的是我只找到了 NUMA 的优化文档。
我想要的是:如何在系统中初始化 NUMA(这将包括获取系统的内存拓扑和处理器拓扑)。有谁知道关于 X86-64 AMD 和 Intel 处理器的 NUMA 的好文档?
我已经查找了 X86-64 处理器的 NUMA 文档,不幸的是我只找到了 NUMA 的优化文档。
我想要的是:如何在系统中初始化 NUMA(这将包括获取系统的内存拓扑和处理器拓扑)。有谁知道关于 X86-64 AMD 和 Intel 处理器的 NUMA 的好文档?
我知道,如果您想要系统拓扑,您可以从 ACPI SLIT(系统位置信息表)或 SRAT(静态资源关联表)中获得。您可以从此处的 ACPI 规范 (http://www.acpi.info/spec.htm) 中了解更多相关信息,特别是第 5.2.16 和 5.2.17 节。
基本上,您使用 SRAT 来确定哪些内存范围与哪些 CPU 相关联,并使用 SLIT 来确定使用特定 CPU/内存范围的相对成本。这两个表都是可选的,但根据我的经验,大多数 NUMA 系统至少有一个有用的 SRAT。
就初始化而言,我认为我无能为力。您可能想了解如何在 Linux 内核(或 BSD 内核)上启动处理器。您可能还需要阅读本地 APIC,因为它们用于初始化 x86 AP。