SRAT - 静态资源亲和性表

系统/静态资源亲和性表描述了资源(CPU、内存)与“邻近域”的亲和性。 此表在技术上是可选的,但要使 Linux 枚举性能信息(请参阅“HMAT”),它必须存在。

CEDT 和 SRAT 表以及 NUMA 节点的创建之间存在着谨慎的平衡。 如果事情看起来不太符合您的预期 - 请检查 SRAT 内存亲和性条目和 CEDT CFMWS,以确定您的平台在灵活拓扑方面实际支持什么。

SRAT 可能会将 CFMWS SPA 范围的一部分静态分配给特定的邻近域。 有关这如何在 NUMA 拓扑中呈现的更多信息,请参阅 Linux NUMA 创建。

邻近域

邻近域大致等同于“NUMA 节点” - 尽管不能保证 1 对 1 映射。 在某些情况下,“邻近域 4”可能会映射到“NUMA 节点 3”,例如。(请参阅“NUMA 节点创建”)

内存亲和性

一般来说,如果主机在 BIOS 中进行任何数量的 CXL fabric(解码器)编程 - 则需要存在该内存的 SRAT 条目。

例子

        Subtable Type : 01 [Memory Affinity]
               Length : 28
     Proximity Domain : 00000001          <- NUMA Node 1
            Reserved1 : 0000
         Base Address : 000000C050000000  <- Physical Memory Region
       Address Length : 0000003CA0000000
            Reserved2 : 00000000
Flags (decoded below) : 0000000B
             Enabled : 1
       Hot Pluggable : 1
        Non-Volatile : 0

通用端口亲和性

通用端口亲和性子表提供了邻近域和设备句柄之间的关联,设备句柄代表通用端口,例如 CXL 主桥。 通过关联,可以从 SRAT 中检索 CPU(启动器)和通用端口之间路径的延迟和带宽数。 这用于构造热插拔 CXL 设备的性能坐标,这些设备无法通过平台固件在启动时枚举。

例子

     Subtable Type : 06 [Generic Port Affinity]
            Length : 20               <- 32d, length of table
          Reserved : 00
Device Handle Type : 00               <- 0 - ACPI, 1 - PCI
  Proximity Domain : 00000001
     Device Handle : ACPI0016:01
             Flags : 00000001         <- Bit 0 (Enabled)
          Reserved : 00000000

邻近域与相关延迟或带宽数的 HMAT SSLBI 目标邻近域列表匹配。 这些性能数字通过设备句柄与 CXL 主桥相关联。 驱动程序使用该关联来检索整个 CXL 路径访问坐标计算的通用端口性能数字。