Compute Express Link 子系统成熟度图¶
Linux CXL 子系统跟踪动态的CXL 规范,该规范不断响应具有新特性、能力更新和修复的新用例。 在任何给定的时间点,子系统的某些方面比其他方面更成熟。 虽然周期性的 pull request 总结了每个合并窗口中合并的工作,但这些并不总是传达相对于起点的进展和未来的最终目标。
以下是对子系统主要职责的粗略分解以及成熟度评分。 期望本文档的更改历史记录提供子系统随时间推移的成熟度的概述摘要。
成熟度评分是
[3] 成熟:该领域的工作已完成,并且没有即将发生的更改。 请注意,此分数可能会根据新的测试结果或最终用户报告从一个内核版本回归到下一个内核版本。
[2] 稳定:主要功能可运行,常见情况已成熟,但已知的极端情况仍在进行中。
[1] 初始:已退出概念验证阶段的功能,但可能仍有重大差距需要弥合,并且需要在实际测试中应用修复。
[0] 已知差距:该功能处于中期至长期实施计划中。 如果规范中有一个功能甚至没有本文档中的“0”分,那么 linux-cxl@vger.kernel.org 社区中很有可能没有人开始研究它。
X:超出内核启用范围,或不需要内核启用
特性和能力¶
枚举/配置¶
子系统的所有基本枚举和对象模型都已就位,但仍有几个极端情况有待解决。
RAS¶
在许多方面,CXL 可以被视为通常由自定义 EDAC 驱动程序处理的标准化。 这里的开放开发主要是由上面的枚举极端情况引起的。
[3] 组件事件 (OS)
[2] 组件事件 (FFM)
[1] 端点协议错误 (OS)
[1] 端点协议错误 (FFM)
[0] 交换机协议错误 (OS)
[1] 交换机协议错误 (FFM)
[2] DPA->HPA 地址转换
[1] XOR 交叉转换(参见 CXL 窗口枚举)
[1] 内存故障协调
[0] 清理控制
[2] ACPI 错误注入 EINJ
[0] EINJ v2
[X] 合规性 DOE
[2] 本机错误注入
[3] RCH 错误处理
[1] VH 错误处理
[0] PPR
[0] 备用
[0] 设备内置测试
邮箱命令¶
[3] 固件更新
[3] 健康/警报
[1] 后台命令
[3] 清理
[3] 安全命令
[3] RAW 命令调试直通
[0] 仅 CEL 验证直通
[0] 交换机 CCI
[3] 时间戳
[1] PMEM 标签
[3] PMEM GPF / 脏关机
[0] 扫描介质
PMU¶
[1] Type 3 PMU
[0] 交换机 USP/DSP,根端口
安全¶
[X] CXL 可信执行环境安全协议 (TSP)
[X] CXL IDE(被 TSP 取代)
内存池¶
[1] LD 的热插拔(通过 PCI 热插拔)
[0] 动态容量设备 (DCD) 支持
多主机共享¶
[0] 硬件一致共享内存
[0] 软件管理一致性共享内存
多主机内存¶
[0] 动态容量设备支持
[0] 共享
加速器¶
[0] 加速器内存枚举 HDM-D (CXL 1.1/2.0 Type-2)
[0] 加速器内存枚举 HDM-DB (CXL 3.0 Type-2)
[0] CXL.cache 68b (CXL 2.0)
[0] CXL.cache 256b 缓存 ID (CXL 3.0)
用户流程支持¶
[0] 通过 HPA 注入和清除毒药
详细信息¶
扩展线性内存侧缓存:HMAT 提案,用于枚举内存侧缓存的存在,其中缓存容量扩展了 SRAT 地址范围容量。 有关更多详细信息,请参阅 ECN。
RCH 链路状态:RCH(受限 CXL 主机)拓扑最终会隐藏一些标准寄存器,例如 CXL RCRB(根复合体寄存器块)中的 PCIe 链路状态/功能。
后台命令:CXL 后台命令机制很笨拙,因为单个槽可能会被各种命令无限期地垄断。 需要 冲突时取消设施,以确保内核可以确保优先级命令的向前进展。