Documentation/edac/features.rst GitHub 원문 ↗

Linux 6.18.37 · EDAC

EDAC/RAS features

EDAC/RAS scrub, ECS, ACPI RAS2, memory repair 기능의 계층 설계와 sysfs 제어 흐름을 설명하는 한국어 전문 번역입니다.

Source pathDocumentation/edac/features.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

features.rst:1-103

EDAC/RAS 기능 프레임워크는 scrub, ECS, ACPI RAS2, PPR, memory sparing repair를 공통 descriptor와 EDAC bus로 통합합니다. 장치 드라이버가 기능을 등록하면 sysfs에 제어 속성이 생기고 rasdaemon이 오류 추세에 따라 동적 scrub 또는 repair를 요청할 수 있습니다.

EDAC/RAS 제어 경로
Hardware or firmware provides RAS featureKernel driver registers EDAC descriptorEDAC bus exposes sysfs controlsrasdaemon handles corrected-error reportsDynamic controller requests scrub or repair

플랫폼 기능이 커널 descriptor와 sysfs를 거쳐 userspace 정책으로 연결됩니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.2-no-invariants-or-later
2
3 =================
4 EDAC/RAS features
5 =================
6
7 Copyright (c) 2024-2025 HiSilicon Limited.
8
9 :Author: Shiju Jose <[email protected]>
10 :License: The GNU Free Documentation License, Version 1.2 without
11 Invariant Sections, Front-Cover Texts nor Back-Cover Texts.
12 (dual licensed under the GPL v2)
13
14 - Written for: 6.15
15
16 Introduction
17 ------------
18
19 EDAC/RAS components plugging and high-level design:
20
21 1. Scrub control
22
23 2. Error Check Scrub (ECS) control
24
25 3. ACPI RAS2 features
26
27 4. Post Package Repair (PPR) control
28
29 5. Memory Sparing Repair control
30
31 High level design is illustrated in the following diagram::
32
33 +-----------------------------------------------+
34 | Userspace - Rasdaemon |
35 | +-------------+ |
36 | | RAS CXL mem | +---------------+ |
37 | |error handler|---->| | |
38 | +-------------+ | RAS dynamic | |
39 | +-------------+ | scrub, memory | |
40 | | RAS memory |---->| repair control| |
41 | |error handler| +----|----------+ |
42 | +-------------+ | |
43 +--------------------------|--------------------+
44 |
45 |
46 +-------------------------------|------------------------------+
47 | Kernel EDAC extension for | controlling RAS Features |
48 |+------------------------------|----------------------------+ |
49 || EDAC Core Sysfs EDAC| Bus | |
50 || +--------------------------|---------------------------+| |
51 || |/sys/bus/edac/devices/<dev>/scrubX/ | | EDAC device || |
52 || |/sys/bus/edac/devices/<dev>/ecsX/ |<->| EDAC MC || |
53 || |/sys/bus/edac/devices/<dev>/repairX | | EDAC sysfs || |
54 || +---------------------------|--------------------------+| |
55 || EDAC|Bus | |
56 || | | |
57 || +----------+ Get feature | Get feature | |
58 || | | desc +---------|------+ desc +----------+ | |
59 || |EDAC scrub|<-----| EDAC device | | | | |
60 || +----------+ | driver- RAS |----->| EDAC mem | | |
61 || +----------+ | feature control| | repair | | |
62 || | |<-----| | +----------+ | |
63 || |EDAC ECS | +---------|------+ | |
64 || +----------+ Register RAS|features | |
65 || ______________________|_____________ | |
66 |+---------|---------------|------------------|--------------+ |
67 | +-------|----+ +-------|-------+ +----|----------+ |
68 | | | | CXL mem driver| | Client driver | |
69 | | ACPI RAS2 | | scrub, ECS, | | memory repair | |
70 | | driver | | sparing, PPR | | features | |
71 | +-----|------+ +-------|-------+ +------|--------+ |
72 | | | | |
73 +--------|-----------------|--------------------|--------------+
74 | | |
75 +--------|-----------------|--------------------|--------------+
76 | +---|-----------------|--------------------|-------+ |
77 | | | |
78 | | Platform HW and Firmware | |
79 | +--------------------------------------------------+ |
80 +--------------------------------------------------------------+
81
82
83 1. EDAC Features components - Create feature-specific descriptors. For
84 example: scrub, ECS, memory repair in the above diagram.
85
86 2. EDAC device driver for controlling RAS Features - Get feature's attribute
87 descriptors from EDAC RAS feature component and registers device's RAS
88 features with EDAC bus and expose the features control attributes via
89 sysfs. For example, /sys/bus/edac/devices/<dev-name>/<feature>X/
90
91 3. RAS dynamic feature controller - Userspace sample modules in rasdaemon for
92 dynamic scrub/repair control to issue scrubbing/repair when excess number
93 of corrected memory errors are reported in a short span of time.
94
95 RAS features
96 ------------
97 1. Memory Scrub
98
99 Memory scrub features are documented in `Documentation/edac/scrub.rst`.
100
101 2. Memory Repair
102
103 Memory repair features are documented in `Documentation/edac/memory_repair.rst`.
104

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

EDAC/RAS 기능 범위

1-30

이 문서는 HiSilicon Limited가 2024~2025년에 저작권을 보유하고 Shiju Jose가 Linux 6.15를 기준으로 작성한 EDAC/RAS 기능 설계 문서입니다. GPL-2.0 또는 불변 섹션이 없는 GFDL-1.2 이상으로 이중 라이선스됩니다.

설계 범위는 메모리 scrub 제어, Error Check Scrub(ECS) 제어, ACPI RAS2 기능, Post Package Repair(PPR) 제어, Memory Sparing Repair 제어입니다.

EDAC/RAS 제어 기능
기능목적
Scrub control메모리 오류 탐색·교정 scrub 제어
ECS controlError Check Scrub 실행 제어
ACPI RAS2펌웨어가 제공하는 RAS2 기능 연결
PPR controlPost Package Repair 수행 제어
Memory Sparing Repair예비 메모리를 이용한 복구 제어

.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.2-no-invariants-or-later

=================
EDAC/RAS features
=================

Copyright (c) 2024-2025 HiSilicon Limited.

:Author:   Shiju Jose <[email protected]>
:License:  The GNU Free Documentation License, Version 1.2 without
           Invariant Sections, Front-Cover Texts nor Back-Cover Texts.
           (dual licensed under the GPL v2)

- Written for: 6.15

Introduction
------------

EDAC/RAS components plugging and high-level design:

1. Scrub control

2. Error Check Scrub (ECS) control

3. ACPI RAS2 features

4. Post Package Repair (PPR) control

5. Memory Sparing Repair control

Userspace·EDAC bus·드라이버·플랫폼 계층

31-82

상위 설계에서 userspace의 rasdaemon은 CXL 메모리와 일반 메모리 오류 handler를 통해 오류를 관찰하고, 동적 scrub 및 memory repair controller로 복구 동작을 지시합니다.

Kernel EDAC 확장은 EDAC core와 EDAC bus를 중심으로 RAS 기능 제어를 노출합니다. 각 장치는 `/sys/bus/edac/devices/<dev>/scrubX/`, `ecsX/`, `repairX` 경로에서 기능별 sysfs 속성을 제공합니다.

EDAC scrub, EDAC ECS, EDAC memory repair 구성 요소는 기능 descriptor를 정의합니다. EDAC 장치 드라이버는 descriptor를 가져와 장치의 RAS 기능을 EDAC bus에 등록합니다.

하위에는 ACPI RAS2 드라이버, scrub·ECS·sparing·PPR을 제공하는 CXL mem 드라이버, memory repair 기능을 제공하는 client driver가 있습니다. 이 드라이버들은 platform hardware와 firmware의 기능을 EDAC 계층에 연결합니다.

EDAC/RAS 계층 구조
Platform hardware and firmware expose RAS controlsACPI RAS2, CXL mem and client drivers register feature descriptorsEDAC bus creates scrubX, ecsX and repairX sysfs controlsEDAC device and MC layers connect controls to hardwarerasdaemon observes errors and requests dynamic scrub or repair

원문의 ASCII 구조도를 기능 흐름이 드러나는 계층형 단계로 재구성했습니다.

High level design is illustrated in the following diagram::

        +-----------------------------------------------+
        |   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              |      |
   |    +--------------------------------------------------+      |
   +--------------------------------------------------------------+

기능 descriptor, 장치 등록과 동적 제어

83-103

EDAC feature component는 scrub, ECS, memory repair처럼 기능별 descriptor를 만듭니다. Descriptor는 장치 드라이버가 기능과 속성을 공통 EDAC 모델에 연결하는 계약입니다.

RAS 기능을 제어하는 EDAC 장치 드라이버는 각 component에서 attribute descriptor를 가져오고 장치 기능을 EDAC bus에 등록합니다. 그 결과 `/sys/bus/edac/devices/<dev-name>/<feature>X/` 아래에 제어 속성이 노출됩니다.

rasdaemon의 userspace 예제 모듈은 짧은 시간에 corrected memory error가 과도하게 보고되면 동적 scrub 또는 repair를 지시합니다. 메모리 scrub의 세부 사항은 `Documentation/edac/scrub.rst`, 메모리 repair는 `Documentation/edac/memory_repair.rst`에서 설명합니다.

RAS 기능 등록과 동적 대응
Feature component creates scrub, ECS or repair descriptorDevice driver retrieves feature attributesRegister device feature with EDAC busExpose `<feature>X` controls through sysfsrasdaemon triggers scrub or repair after an error burst

정적 descriptor가 sysfs 제어로 노출되고 오류율에 따라 userspace가 복구를 요청합니다.

1. EDAC Features components - Create feature-specific descriptors. For
   example: scrub, ECS, memory repair in the above diagram.

2. EDAC device driver for controlling RAS Features - Get feature's attribute
   descriptors from EDAC RAS feature component and registers device's RAS
   features with EDAC bus and expose the features control attributes via
   sysfs. For example, /sys/bus/edac/devices/<dev-name>/<feature>X/

3. RAS dynamic feature controller - Userspace sample modules in rasdaemon for
   dynamic scrub/repair control to issue scrubbing/repair when excess number
   of corrected memory errors are reported in a short span of time.

RAS features
------------
1. Memory Scrub

Memory scrub features are documented in `Documentation/edac/scrub.rst`.

2. Memory Repair

Memory repair features are documented in `Documentation/edac/memory_repair.rst`.