요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. 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
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 | |
| +--------------------------------------------------+ |
+--------------------------------------------------------------+
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`.
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 제어입니다.
.. 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 계층에 연결합니다.
원문의 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-103EDAC 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`에서 설명합니다.
정적 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`.
요약·해설
features.rst:1-103EDAC/RAS 기능 프레임워크는 scrub, ECS, ACPI RAS2, PPR, memory sparing repair를 공통 descriptor와 EDAC bus로 통합합니다. 장치 드라이버가 기능을 등록하면 sysfs에 제어 속성이 생기고 rasdaemon이 오류 추세에 따라 동적 scrub 또는 repair를 요청할 수 있습니다.
플랫폼 기능이 커널 descriptor와 sysfs를 거쳐 userspace 정책으로 연결됩니다.