EDAC/RAS 特性

版权所有 (c) 2024-2025 HiSilicon Limited。

作者:

Shiju Jose <shiju.jose@huawei.com>

许可:

GNU 自由文档许可证,1.2 版,没有不变部分、封面文本或封底文本。(在 GPL v2 下双重许可)

  • 为以下版本编写: 6.15

简介

EDAC/RAS 组件插入和高层设计

  1. 擦洗控制

  2. 错误检查擦洗 (ECS) 控制

  3. ACPI RAS2 特性

  4. 封装后修复 (PPR) 控制

  5. 内存备用修复控制

高层设计如下图所示

     +-----------------------------------------------+
     |   Userspace - Rasdaemon                       |
     | +-------------+                               |
     | | RAS CXL mem |     +---------------+         |
     | |error handler|---->|               |         |
     | +-------------+     | RAS dynamic   |         |
     | +-------------+     | scrub, memory |         |
     | | RAS memory  |---->| repair control|         |
     | |error handler|     +----|----------+         |
     | +-------------+          |                    |
     +--------------------------|--------------------+
                                |
                                |
+-------------------------------|------------------------------+
|     Kernel EDAC extension for | controlling RAS Features     |
|+------------------------------|----------------------------+ |
|| EDAC Core          Sysfs EDAC| Bus                        | |
||   +--------------------------|---------------------------+| |
||   |/sys/bus/edac/devices/<dev>/scrubX/ |   | EDAC device || |
||   |/sys/bus/edac/devices/<dev>/ecsX/   |<->| EDAC MC     || |
||   |/sys/bus/edac/devices/<dev>/repairX |   | EDAC sysfs  || |
||   +---------------------------|--------------------------+| |
||                           EDAC|Bus                        | |
||                               |                           | |
||   +----------+ Get feature    |      Get feature          | |
||   |          | desc +---------|------+ desc +----------+  | |
||   |EDAC scrub|<-----| EDAC device    |      |          |  | |
||   +----------+      | driver- RAS    |----->| EDAC mem |  | |
||   +----------+      | feature control|      | repair   |  | |
||   |          |<-----|                |      +----------+  | |
||   |EDAC ECS  |      +---------|------+                    | |
||   +----------+    Register RAS|features                   | |
||         ______________________|_____________              | |
|+---------|---------------|------------------|--------------+ |
|  +-------|----+  +-------|-------+     +----|----------+     |
|  |            |  | CXL mem driver|     | Client driver |     |
|  | ACPI RAS2  |  | scrub, ECS,   |     | memory repair |     |
|  | driver     |  | sparing, PPR  |     | features      |     |
|  +-----|------+  +-------|-------+     +------|--------+     |
|        |                 |                    |              |
+--------|-----------------|--------------------|--------------+
         |                 |                    |
+--------|-----------------|--------------------|--------------+
|    +---|-----------------|--------------------|-------+      |
|    |                                                  |      |
|    |            Platform HW and Firmware              |      |
|    +--------------------------------------------------+      |
+--------------------------------------------------------------+
  1. EDAC 特性组件 - 创建特定于特性的描述符。例如:上图中的擦洗、ECS、内存修复。

  2. 用于控制 RAS 特性的 EDAC 设备驱动程序 - 从 EDAC RAS 特性组件获取特性的属性描述符,并在 EDAC 总线上注册设备的 RAS 特性,并通过 sysfs 公开特性控制属性。例如,/sys/bus/edac/devices/<dev-name>/<feature>X/

  3. RAS 动态特性控制器 - rasdaemon 中的用户空间示例模块,用于动态擦洗/修复控制,以便在短时间内报告过多数量的已更正内存错误时,发出擦洗/修复。

RAS 特性

  1. 内存擦洗

内存擦洗特性在 擦洗控制 中有文档记录。

  1. 内存修复

内存修复特性在 EDAC 内存修复控制 中有文档记录。