17.2. 系统局部性
作为对称多处理(SMP)单元呈现给 OSPM 的一组组件属于同一个系统局部性,也称为接近域。系统局部性的粒度通常处于 NUMA 节点级别,尽管该粒度也可以处于子 NUMA 节点级别,或者处理器、内存和主桥级别。
系统局部性通过系统资源亲和性表(SRAT)中的接近域条目,或者通过 ACPI 命名空间中的 _PXM (Proximity) 方法报告给 OSPM。如果 OSPM 只需要知道系统局部性之间的近/远区分,那么比较接近域值就足够了。更多信息请参见系统资源亲和性表(SRAT)和_PXM (Proximity)章节。
OSPM 不对不同接近域之间的接近程度或远近关系做任何假设。表示不同接近域的两个整数之间的差值并不意味着这些接近域之间的距离(换句话说,不能假定接近域 1 比接近域 6 更接近接近域 0)。
17.2.1. 系统资源亲和性表定义
可选的系统资源亲和性表(SRAT)提供了属于某个系统局部性的处理器和内存范围的启动时描述。OSPM 仅会在启动时使用 SRAT。对于任何未包含在 SRAT 中的设备,OSPM 应对这些设备或其在启动后被热添加到系统中的祖先使用 _PXM (Proximity)。
SRAT 描述了系统启动时系统中所有现有处理器和内存所属的系统局部性。这包括可以热添加的内存(即可以在系统运行时添加到系统中而无需重启的内存)。OSPM 可以使用此信息来优化 NUMA 架构系统的性能。例如,OSPM 可以利用此信息优化内存资源的分配和软件线程的调度。
17.2.2. 系统资源亲和性更新
设备的动态迁移可能导致相对系统资源亲和性信息(如果存在可选的 SRAT)发生变化。如果发生这种情况,平台可以向设备树中表示某个系统资源亲和性的某一点上的设备生成系统资源亲和性更新通知(类型为 0x0D 的 Notify 事件)。这表示 OSPM 应调用被通知设备的 _PXM (Proximity) 对象以更新资源亲和性。