From b7964342082a1e59373f435d4ffe0c343102f150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=8B?= <404325854@qq.com> Date: Fri, 28 Jun 2024 14:07:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=93=81docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PRODUCT_DOCS/assets/datop1.png | Bin 0 -> 113460 bytes PRODUCT_DOCS/assets/datop2.png | Bin 0 -> 73016 bytes PRODUCT_DOCS/assets/datop3.png | Bin 0 -> 156799 bytes ...07\345\215\227\350\257\264\346\230\216.md" | 123 +++ PRODUCT_DOCS/test/test1.md | 984 +++++++++++++++++- PRODUCT_DOCS/test/test2.md | 34 + PRODUCT_DOCS/test/test3.md | 117 +++ 7 files changed, 1256 insertions(+), 2 deletions(-) create mode 100644 PRODUCT_DOCS/assets/datop1.png create mode 100644 PRODUCT_DOCS/assets/datop2.png create mode 100644 PRODUCT_DOCS/assets/datop3.png create mode 100644 "PRODUCT_DOCS/test/1-HML\347\224\250\346\210\267\346\214\207\345\215\227\350\257\264\346\230\216.md" create mode 100644 PRODUCT_DOCS/test/test2.md create mode 100644 PRODUCT_DOCS/test/test3.md diff --git a/PRODUCT_DOCS/assets/datop1.png b/PRODUCT_DOCS/assets/datop1.png new file mode 100644 index 0000000000000000000000000000000000000000..a798ff256c3f6abc0b1dfaa200bab76962adbb3b GIT binary patch literal 113460 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%0DNdYn@$Be$z8Jzlv?8>V>5mvu~~ph<0{%Y#v3 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 B5l;XB literal 0 HcmV?d00001 diff --git a/PRODUCT_DOCS/assets/datop2.png b/PRODUCT_DOCS/assets/datop2.png new file mode 100644 index 0000000000000000000000000000000000000000..bb5c5e8ec2ee954701e0c49a2b7209462b5fe610 GIT binary patch literal 73016 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 literal 0 HcmV?d00001 diff --git a/PRODUCT_DOCS/assets/datop3.png b/PRODUCT_DOCS/assets/datop3.png new file mode 100644 index 0000000000000000000000000000000000000000..f863b7c1a111f35db9fc16742807cbf611520b29 GIT binary patch literal 156799 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 G(f + +```sh +git clone https://gitee.com/anolis/hygon-devkit.git +``` + +HML高性能数学库在hygon-devkit中的目录结构示意图如下: + +``` +hygon-devkit/ + ├─ hml + ├──pkg + │ └── hml_1.0.0 + │ + └── README.md + +``` + +* pkg目录:内含各版本hml高性能数学库。 +* README.md文件:有关HML的简单情况。 + + +### 安装与使用 + +#### 环境配置 + +确保gcc版本号>=8.5.0 +```sh +可以通过如下命令查看gcc版本号 +gcc -v +``` + +#### 安装 + +* 安装包命令规则 + +包命名规则如下: +hml----.. +如: +hml-1.0.0-2024-0320-rc.x86_64.rpm + +* RPM安装 +```sh +# 1. 安装 + sudo rpm -Uvh hml-1.0.0-2024-0320-rc.x86_64.rpm + +# 2. 检查是否安装成功 + rpm -qi hml + +# 3. 显示安装路径 + rpm -ql hml + +# 4. 卸载 + sudo rpm --verbose --erase hml +``` + +* DEB安装 +```sh +# 1. 检查DEB信息 + dpkg -I hml-1.0.0-2024-0320-rc.x86_64.deb + +# 2. 安装 + sudo dpkg -i hml-1.0.0-2024-0320-rc.x86_64.deb + +# 3. 检查安装是否成功 + dpkg -l hml + +# 4. 卸载 + sudo dpkg -r hml +``` + +* 安装路径 + HML库会被安装到/opt/hygon/目录下,包含blas、fft、smm、sparse、vml、vsip库。 + +#### 使用 + +* 添加HML库路径到环境变量 +```sh + export LD_LIBRARY_PATH=/opt/hygon:$LD_LIBRARY_PATH +``` + +* 链接HML库 +```sh +# 1. 链接BLAS库 + -L /opt/hygon/blas/lib -lblis-hg + +# 2. 链接FFT库 + -L /opt/hygon/fft/fftw_double/lib -lfftw3 + -L /opt/hygon/fft/fftw_single/lib -lfftw3 + +# 3. 链接SMM库 + -L /opt/hygon/smm/lib -lsmm-hg + +# 4. 链接SPARSE库 + -L /opt/hygon/sparse/lib -lhml_sparse-hg + +# 5. 链接VML库 + -L /opt/hygon/vml/lib -lvml-hg + +# 6. 链接VSIP库 + -L /opt/hygon/vsip/lib -lvsip-hg +``` + +### 使用指南 + +参考HML用户指南.pdf(https://gitee.com/anolis/hygon-devkit/blob/master/hml/HML%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf) + +指南包含: + +* HML库介绍 +* HML库安装 +* HML_BLAS库接口和使用说明以及代码示例。 +* HML_SMM库接口和使用说明以及代码示例。 +* HML_SPARSE接口和使用说明以及代码示例。 +* HML_VML接口和使用说明以及代码示例。 +* HML_VSIP接口和使用说明以及代码示例。 + diff --git a/PRODUCT_DOCS/test/test1.md b/PRODUCT_DOCS/test/test1.md index 6648a1d..232454f 100644 --- a/PRODUCT_DOCS/test/test1.md +++ b/PRODUCT_DOCS/test/test1.md @@ -1,2 +1,982 @@ -# test -__test2__ \ No newline at end of file +# Anolis OS Cloud Kernel: RAS White Paper + +## REVISION HISTORY + +| DATE | VERSION | DESCRIPTION | AUTHOR | APPROVER | +| ---------- | ------- | --------------- | ----------------------- | ----------- | +| 2022/12/31 | 1.0 | Initial version | Shuai Xue, Ruidong Tian | Baolin Wang | + +## Terms and Abbreviations + +| Abbreviation | Definition | +| ------------ | ----------------------------------------------------------------------------- | +| RAS | Reliability, Availability and Serviceability | +| SLA | Service Level Agreement | +| CE | Correctable Error | +| UCE | Uncorrected Correctable Error | +| MCA | Machine-Check Architecture | +| CMCI | Corrected Machine Check Interrupt | +| MCE | Machine-Check Exception | +| SEA | Synchronous External Abort | +| ELx | Exception levels are referred to as EL, with x as a number between 0 and 3 | +| ECC | Error Correction Code | +| SECDED | Single-bit Error Correction and Double-bit Error Detection | +| TF-A | Trusted Firmware-A | +| HEST | Hardware Error Source Table | +| GHES | Generic Hardware Error Source | + +## Abstract + +Reliability, availability and serviceability (RAS) is a computer hardware engineering term referring to the elimination of hardware failures to ensure maximum system uptime. + +This document describes the memory RAS features in detail, explaining how server availability is enhanced with the memory RAS features on Yitian 710 servers running Anolis OS Cloud Kernel. + +## Introduction + +The server is one of the key components of any modern data center infrastructure. It consists of a variety of hardware parts, including processors, storage devices, PCIe devices, power supplies, and fans. + +In today’s hyper scale Cloud Data centers, correct server operation and data integrity are critical to ensure service continuity. In other words, we must avoid data corruption no matter data is stored in any server component (memory, cache, or processor registers) or transmitted through any platform links (Intel®UPI, PCI Express, or DMI). + +Server reliability, availability, and serviceability (RAS) are crucial issues for modern enterprise IT shops that deliver mission-critical applications and services, as application delivery failures can be extremely costly per hour of system downtime. Although hardware failures are rare, they are inevitable but random events, especially for large scale data centers. If such incidents are not efficiently diagnosed, the consequences may be very serious and sometimes even catastrophic, such as data corruption or server crash. which are top concerns to meet SLAs (Service Level Agreement) for cloud end users. The likelihood of such failures increases statistically with the size of the servers, data, and memory required for these deployments. Furthermore, considering today’s server system with more and more CPU cores shipped on hundreds of Virtual Machines (VM) and DDR DIMMs operating on it, the impact of server crash caused by hardware failures is much bigger than before. + +Modern CPU offers an extensive and robust set of RAS features in silicon to provide error detection, correction, containment, and recovery in all processors, memory, and I/O data paths based on Intel Machine Check Architecture (MCA) Recovery mechanism or ARM v8.2 RAS Extension. When a server component fails, OS with such RAS features is capable of recovery from hardware error, maximizing service availability and maintaining data integrity. + +## RAS Mechanism Overview + +### Error categories + +One of the most popular RAS schemes used in the memory subsystem is Error Correction Code (ECC) SECDED (Single-bit Error Correction and Double-bit Error Detection), which as its name indicates, the DDR controller can correct single-bit errors and detect double-bit errors on the received data from the DRAMs. + +Talking about detected hardware errors, we can classify memory errors as either corrected errors (CE) or uncorrected errors (UCE). + +- **Correctable Error (CE)** - the hardware error detection mechanism detected and automatically corrected the error. +- **Uncorrected errors (UCE)** - are severe enough, hardware detects but cannot correct. + +![MCA categories 2.png](../../assets/MCA_categories_2.png) + +Typically, uncorrectable errors further fall into three categories: + +- **Uncorrected Recoverable Errors (UCR)** - are uncorrected errors that have been detected and signaled but have not corrupted the processor context. For certain UCR errors, this means that once system software has performed a certain recovery action, it is possible to continue execution on this processor. UCR error reporting provides an error containment mechanism for data poisoning. It can be further divided into: + - **Action Required (AR)**: The error occurs in execution context. If such an error is detected, and the memory access has been architecturally executed, that error is considered “consumed”. CPU will signal a synchronous exception when an error is detected and the processor already consumes the memory. OS requires to take action (for example, offline failure page/kill failure thread) to recover this uncorrectable error. + - **Action Optional (AO)**: The error is detected out of processor execution context, e.g. when detected by a background scrubber or accessed by prefetch instruction. In this scenario, the data in the memory are corrupted, but OS is optional to take action to recover this uncorrectable error. +- **Uncorrected Error (UC)** - 2 bit (uncorrectable) error occurs and can not be corrected by hardware. The processor context is corrupted and cannot continue to operate the system. OS requires to panic immediately. + +OS will take specific actions based on the above failures. Handling CEs is done in silicon, e.g. using ECCs and can be made transparent to system. Handling DUEs, however, can require collaboration from higher layers in the hardware-software stack, from silicon to virtual memory manager, to the operating system (OS), and sometimes even the application layer. + +### X86 MCA Recovery + +The new Intel Xeon Scalable Family processors support recovery from some memory errors based on the Machine Check Architecture (MCA) Recovery mechanism. The figure shows a basic workflow with legacy MCA or EMCA. + +Prior to enhanced machine check architecture (EMCA), IA32-legacy version of Machine Check Architecture (MCA) implemented error handling where all the errors were logged in architected registers (MC banks) and signaled to OS/hypervisor. CMCI is signaled only when CE is over threshold and OS CMCI handler, aka, `threshold_interrupt` read MC Banks and other HW registers for further error handling. MCE is signaled when uncorrected or fatal errors are detected and its handler `do_machine_check` will poison the page and then kill current thread in memory failure. + +EMCA enables BIOS-based recovery from errors which redirects MCE and CMCI to firmware first (via SMI) before sending it to the OS error handler. It allows firmware first to handle, collect, and build enhanced error logs then report to system software. + +![ras_x86.png](../../assets/ras_x86.png) + +### ARM v8.2 RAS Extension + +The RAS Extension is a mandatory extension to the Armv8.2 architecture, and it is an optional extension to the Armv8.0 and Armv8.1 architectures. The figure shows a basic workflow with Firmware First mode. +![m1_ras_flow.png](../../assets/m1_ras_flow.png) + +- Prerequisite: System boot and init + + - Platform RAS driver init: BL31 initializes SPM (includes MM dispatcher) and SDEI dispatcher, UEFI query and update error source info in HEST + - OS RAS driver init: HEST driver scans HEST table and registers error handlers by APEI notification, e.g. SDEI, SEA, GPIO, etc. + +1. RAS event (UE or CE) occurred, the event will be routed to EL3 (SPM). +2. SPM routes the event to RAS error handler in S-EL0 (MM Foundation). +3. MM Foundation creates the CPER blobs by the info from RAS Extension. +4. SPM notifies RAS event through APEI notification, e.g. SDEI, SEA, etc. to call the corresponding OS registered handler. +5. OS gets the CPER blobs by Error Status Address block, processes the error, and tries to recover. +6. OS reports the error event by RAS tracepoints. +7. rasdaemon log error info from RAS event to recorder. + +For example, the platform specifies SDEI as an APEI notification to handle RAS events. As part of initialization, the kernel registers a handler for a platform event, enables the event, and unmasks the current PE. At a later point in time, a critical event, e.g. DDR UE interrupt is trapped into EL3. EL3 performs a first-level triage of the event, and a RAS component assumes further handling. The dispatch completes, but intends to involve Non-secure world UEFI in further handling, and therefore decides to explicitly dispatch an event (which the kernel had already registered for). + +## RAS Solution on ANCK + +Modern CPU offers an extensive and robust set of RAS features in silicon to provide error detection, correction, containment, and recovery in all processors, memory, and I/O data paths based on Intel Machine Check Architecture (MCA) Recovery mechanism or ARM v8.2 RAS Extension. The RAS mechanism is intended to assist CPU designers and CPU debuggers in diagnosing, isolating, and understanding processor failures. It is also intended to help system administrators detect transient and age-related failures, suffered during long-term operation of the server. + +To reduce systems downtime, the OS recovery process for ensuring reliable hardware performance is to detect and correct errors where possible, recover from uncorrectable errors through either physical or logical replacement of a failing component or data path, and prevent future errors by replacing in timely fashion components most likely to fail. + +The figure shows the system error handling flow with Anolis OS. + +![RAS_OS_Error_Flow.png](../../assets/RAS_OS_Error_Flow.png) + +### Memory Failure Recovery + +The RAS mechanism is used to detect, signal, and record machine fault information. Some of these faults are correctable, whereas others are uncorrectable. The Memory Failure Recovery capabilities of RAS mechanism allow systems to continue to operate when an uncorrected error is detected in the system. If not for these capabilities, the system would crash and might require hardware replacement or a system reboot. + +When an uncorrectable error is detected on a requested memory address, data poisoning is used to inform the CPU that the data requested has an uncorrectable error. When the hardware detects an uncorrectable memory error, it routes a poison bit along with the data to the CPU. For the Intel architecture, when the CPU detects this poison bit, it sends a processor interrupt signal to the operating system to notify it of this error. The operating system can then examine the uncorrectable memory error, determine if the software can recover, and perform recovery actions via an interrupt handler. + +Memory Failure Recovery handles UCR errors including: + +- AR are synchronous Errors. There are two types of such errors signaled as data abort or instruction abort. For example, data abort is detected by Data Cache Unit (DCU) and instruction abort is detected by Instruction Fetch Unit (IFU) which are both signaled as Machine Check Exception. The analogy exception is Synchronous External Abort in Arm64 platform. + +- AO are asynchronous Errors. Such errors are detected by memory patrol scrub, prefetch, Last Level Cache (LLC) explicit writeback transaction for X86 platform or store less than ECC protection granularity, e.g. per 64 bit on Neoverse N1 and N2. + +The kernel will attempt to hard-offline the page, by trying to unmap the page or killing any owner, or triggering IO errors if needed. This may kill any processes accessing the page. The kernel will avoid to access this page assuming it's poisoned by the hardware. +Let's dive into more details about Anolis OS Cloud Kernel running on Severs capable of Intel MCA Recovery or ARM v8.2 RAS Extension. + +#### User Space Action Required Recovery + +In Linux, user memory and kernel memory are independent and implemented in separate address spaces. The address spaces are virtualized, meaning that the addresses are abstracted from physical memory (through a process detailed shortly). In fact, the kernel itself resides in one address space, and each process resides in its own address space, so each process can be isolated completely and protected by the paging mechanism. These address spaces consist of virtual memory addresses, permitting many processes with independent address spaces to refer to a considerably smaller physical address space (the physical memory in the machine). Not only is this convenient, but it's also secure, because each address space is independent and isolated and therefore secure. One isolated address space per process is the basis of preventing the fault from being propagated to the enclosing scope or process. + +Without OS memory failure recovery and hardware data poisoning support, once a process is consuming poison, it will be regarded as a fatal event and the kernel will crash immediately. When the OS kernel receives the UCE events, the `memory_failure` function (HWPoison handler) analyzes the log to verify if recovery is feasible. It then takes actions to offline the affected memory page and logs the event in the +mcelog or RAS tracepoint, and the possible results of the actions appear to be ignoring, recovery, delay, and failure. + +The HWPoison handler starts the recovery action by isolating the affected page and declaring it with a “poisoned” tag to disallow any reuse of the page. In the case of an AR-instruction abort event, the HWPoison handler then reloads the 4KB page containing the instruction to a new physical page and resumes normal operation. In the case of an AR-data abort event, the HWPoison handler triggers a “SIGBUS” event to take further recovery action by notifying only the accessing process or any owner process which is configured by hwpoison-aware technique like prctl or early kill. The application has a choice to either reload the data and resume normal execution, or terminate the application to avoid crashing the entire system. + +![EL0_Recovery.png](../../assets/EL0_Recovery.png) + +#### Kernel Space Action Required Recovery + +The kernel itself resides in one address space, and contains a process scheduler, networking stack, virtual file system, and device drivers for hardware support, to name just a few, shared by all user space processes. When a user space application requires the services provided by the kernel, it will signal the kernel to execute a syscall, and switch to kernel mode for the duration of the syscall execution. In principle, if any UCE error was triggered while executing OS kernel code, then the UCE error will be fatal. +Kernel also provides user space memory access APIs for cross-space data movement from or to user memory. Cross-space data movements are limited to perform in Linux by special functions, defined in ``. Such a movement is either performed by a generic (memcpy-like) function or by functions optimized for a specific data size (char, short, int, long); The role of the data-movement functions is shown in following figure as it relates to the types involved for copy (simple vs. aggregate), note, not all user access API is showed. + +![uaccess.png](../../assets/uaccess.png) + +For example, when a user process tries to write a buffer to a file, kernel will copy the data from userspace and then write them to disk. If a UCE error occurs in the userspace buffer, kernel will consume the poison data while copying data from userspace. In such case, a system wide reboot is not unnecessary. The point behind Kernel Space Action Required Recovery is that the poison data manipulated by kernel is owned by the user process. If the application that initiated the copy and owned corrupt data can be easily identified by the kernel, it is possible to isolate the corrupt data by marking the affected page with the ‘poison’ tag and terminating the initiator/impacted applications to stop the corrupt data from spreading. + +The mechanism is to track uaccess in extable in advance and change pc to fixup handler while handling synchronous Errors. Then the uaccess will jump to fixup handler which then endups the uaccess process. If the exception is fixuped correctly, the kernel can avoid panic. In the copy from user case, e.g. initiated by write(2), it is not even necessary to send a SIGBUS. System calls should return -EFAULT or a short count for write(2). The Figure shows the basic workflow for Arm64 platform and the implementation of the X86 platform is similar. + +![EL2_Recovery_x86.png](../../assets/EL2_Recovery_x86.png) + +#### Action Optional Recovery: Patrol Scrub + +ECC Patrol Scrubber is a common block in DDR Controller (DDRC) capable of generating initialization write commands, periodic read commands, periodic RMW commands, and correction RMW commands. It proactively searches the system memory, repairing correctable errors. Periodic scrubbing is performed by the ECC Patrol Scrubber to prevent the accumulation of single-bit errors and increase the reliability of the system by correcting single-bit ECC errors in time, before they turn into uncorrectable 2-bit errors. +When an uncorrectable 2-bit error is detected by Patrol Scrubber, an interrupt will be signaled. In such case, kernel will just unmap the poisoned page because no process is accessing the poison data by default. + +On X86 old generation platform, after the patrol scrub detects memory uncorrected data errors, it will report the OS by MCE. The new generation like Intel® Xeon® Processor-based platforms have an `UCE_TO_CE_DOWNGRAGE` mode where the users can request the memory controller to report UCE found by the patrol scrubber as a corrected type. It is also called ‘downgrading patrol scrub CE/SRAO to CE’. Those errors are signaled by using CMCI, a process less disruptive than a machine check and thus helps avoid double MCE interrupts to crash the system. We recommend setting it on. + +![scrub_recovery](../../assets/Scrub_Recovery.png) + +#### Action Optional Recovery: Prefetch + +Many modern processors implement implicit hardware prefetching and support software prefetching. With software prefetching the programmer or compiler inserts prefetch instructions into the program. For example, Prefetch from Memory (`PRFM`) enables code to provide a hint to the memory system that data from a particular address will be used by the program soon. While for implicit hardware prefetching, the processor monitors the memory access pattern of the running program and tries to predict what data the program will access next and prefetches that data. + +If a prefetch request accesses to poison data, an asynchronous error will be detected and an interrupt will be signaled, e.g. CMCI on Intel Icelake and SPI on Yitian 710. In such case, kernel will just unmap the poison page like Patrol Scrub error. + +Another prefetch scenario we observed is that the poisoned page may still be accessed even though all its owned user processes are killed. After a page is poisoned, it will never be reused, e.g. reallocated to other processes. The problem is that the poisoned page is only unmapped from the page table of user-space process, the kernel page table of the linear mapping range is not considered. It requires dynamically splitting the target linear mapping into PTE granularity and then clearing the PTE valid attribute of the related virtual address while processing memory failure. As a result, the poisoned page will be marked as not-present, which avoids speculative and prefetch access. + +#### Action Optional Recovery: Store + +Write is another type of request which may read the poison data from DDR controller. On Yitian 710, L2 cache is protected by a per 64-bit ECC scheme, a write less than 64bit will trigger asynchronous External Aborts, signaled as SErrors. Similarly, an asynchronous interrupt CMCI is signaled on X86 platform. In such case, it requires firmware to take extra care that does not notify kernel as a fatal error to avoid a system wide reboot. + +Unlike read access, write access does not cause error propagation. When such an error is detected, kernel will regard it as AO asynchronous error and only unmap the poisoned page. However, the write did not take effect, resulting in data loss. A subsequent 64-bit write access has the opportunity to correct this error. When the process trie to consume the poisoned page, the HWPoison handler triggers a “SIGBUS” event to take further recovery action by notifying only the accessing process or any owner process which is configured by hwpoison-aware technique like prctl or early kill. + +#### HWPoison-aware Strategy + +There are in principle two hwpoison-aware strategies to kill processes on poison: + +- just unmap the data and wait for an actual reference before killing +- kill all processes that have the corrupted and not reloadable page mapped as soon as the corruption is detected. + +Both have advantages and disadvantages and should be used in different situations. **Right now both are implemented and can be switched** with a new sysctl vm.memory_failure_early_kill. The default is late kill. Applications can override this setting individually with the PR_MCE_KILL prctl. For example, if early kill is set by `sysctl -w vm.memory_failure_early_kill=1`, kernel will kill any process which mapped the poison page when an uncorrectable 2-bit error is detected by Patrol Scrubber. + +Note, the kill is done using a catchable SIGBUS with BUS_MCEERR_AO, so processes can handle this if they want to. While for AR synchronous errors, the kill is done using a catchable SIGBUS with BUS_MCEERR_AR. + +### Memory Predictive Failure Analysis with Rasdeamon + +When a 1-bit error is detected, it is transparently corrected by the hardware ECC mechanism, and internal counters are updated. If a correctable fault occurs in the memory, we don't need to perform any recovery action on the OS. However, if we continue to see correctable errors, then perhaps the memory is failing. To avoid the possibility of future uncorrectable faults on the same page, we can copy the data to a different page and mark the page as offline. This is the mechanism used by Memory Predictive Failure Analysis (PFA). + +The PFA is powered by the userspace rasdaemon package. Rasdaemon written by Mauro Carvalho Chehab is one of the tools to gather MCE information. Previously, the task was performed by the mcelog package. However, the driver it depends on has been deprecated after kernel 4.12, we recommend switching to the new generation rasdaemon solution. + +If a memory error is detected and signaled, the OS related handler reports them to userspace through RAS tracepoints with EDAC decoded DIMM statistics for accounting and predictive failure analysis. Rasdeamon runs as a daemon that monitors the platform RAS reports from the Linux kernel trace events. And it optionally records RAS events via Sqlite3 which has the benefit of keeping a persistent record of the RAS events. Based on statistical results, some actions can be configured and taken to prevent corrected errors from evoluting into uncorrected errors. For example, specify soft offline action or hard offline action when exceeding a page error threshold within refresh cycles, e.g. 50 CEs perf 24 hours. When a soft action is specified, the kernel will then attempt to soft-offline it, by moving the contents elsewhere or dropping it if possible. The kernel will then be placed on the bad page list and never be reused. The page is still accessible, not poisoned. The kernel will never kill anything for this, but rather fail the offline. + +Note, the RAS feature is only covered but not limited to memory, the processor, PCIe, and Platform(e.g. CMN, GIC, SMMU, etc) RAS are also supported on Anolis OS Cloud Kernel. + +## RAS Validation Guide + +EINJ provides a hardware error injection mechanism. It is very useful for debugging and testing APEI and RAS features in general. In this white paper, we take Yitian 710 running Anolis OS as an example. Note that this guide is also suitable for other platforms with advanced RAS features. + +### Prerequisite + +#### BIOS Requirement + +You need to check whether your BIOS supports EINJ first. For Panjiu M Series equipped with Yitian 710, make ensure to set the following configuration properly. + +```bash +[Platform Configuration][Processor Configuration][CPU Poison] +[Platform Configuration][Memory RAS Configuration][Poison] +[Platform Configuration][Memory RAS Configuration][CE threshold ]<0> +[Platform Configuration][Memory RAS Configuration][Ecc] +[Platform Configuration][PCI-E Configuration][PCIe RAS Support] +[Platform Configuration][PCI-E Configuration][AER CE] +[Platform Configuration][Advance Configuration][Global RAS Enable] +[Platform Configuration][Advance Configuration][EINJ Enable] +[Platform Configuration][Advance Configuration][Route EA to El3] +``` + +#### OS Requirement + +Then, you need to check whether your BIOS supports EINJ. For that, look for early boot messages similar to this one, e.g. on Yitian 710 : + +```bash +#dmesg | grep EINJ +[ 0.000000] ACPI: EINJ 0x00000000F8FAFE18 000150 (v01 PTG PTG01 00000000 PTG 20200717) +``` + +which shows that the BIOS is exposing an EINJ table - it is the mechanism through which the injection is done. + +By default, the EINJ driver is built-in on Anolis OS. If you build kernel from scratch, make sure the following are options enabled in your kernel configuration: + +```shell +CONFIG_DEBUG_FS +CONFIG_ACPI_APEI +CONFIG_ACPI_APEI_EINJ +``` + +Check if the einj module is loaded: + +```shell +$ lsmod | grep einj +einj 16384 0 +``` + +If not, load the einj modules by yourself + +```shell +modprobe einj +``` + +### EINJ Interface + +The EINJ user interface is in \/apei/einj, by default, `/sys/kernel/debug/apei/einj`. + +```bash +#ls /sys/kernel/debug/apei/einj/ +available_error_type error_inject error_type flags notrigger param1 param2 param3 param4 vendor vendor_flags +``` + +The standard error types for the EINJ interface include Processor, Memory, PCIe, and Platform. The file `available_error_type`displays the supported standard error types and their severities, e.g. + +```bash +#cat /sys/kernel/debug/apei/einj/available_error_type +0x00000001 Processor Correctable +0x00000002 Processor Uncorrectable non-fatal +0x00000004 Processor Uncorrectable fatal +0x00000008 Memory Correctable +0x00000010 Memory Uncorrectable non-fatal +0x00000020 Memory Uncorrectable fatal +0x00000040 PCI Express Correctable +0x00000080 PCI Express Uncorrectable non-fatal +0x00000100 PCI Express Uncorrectable fatal +0x00000200 Platform Correctable +0x00000400 Platform Uncorrectable non-fatal +0x00000800 Platform Uncorrectable fatal +``` + +The error injection mechanism is a two-step process. + +- First select an error specified all necessary error parameters including`error_type`,`flags`,`param{1-4}`and `notrigger`,then write any integer to `error_inject` to inject the error. +- The second step performs some actions to trigger it. Setting `notrigger` to 1 skips the trigger phase, which may allow the user to cause the error in some other context by a simple access to the CPU, memory location, or device that is the target of the error injection. Setting `notrigger` to 0, the BIOS should trigger the error internally, e.g. by kicking the patrol scrubber. Whether this actually works depends on what operations the BIOS actually includes in the trigger phase. + +Please refer to the kernel document for more details about EINJ user interface format. + +#### Error Injection Examples with APEI Debugfs + +In this section, we show examples to inject errors with APEI Debugfs on Yitian 710. + +##### Processor Uncorrectable non-fatal + +```bash +APEI_IF=/sys/kernel/debug/apei/einj +echo 33 > $APEI_IF/param3 # APIC ID +echo 0x1 > $APEI_IF/flags +echo 0x00000002 > $APEI_IF/error_type +echo 1 > $APEI_IF/error_inject +``` + +The dmesg log: + +```bash +[ 1820.578688] {3}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 4 +[ 1820.589434] {3}[Hardware Error]: event severity: recoverable +[ 1820.595078] {3}[Hardware Error]: precise tstamp: 2023-01-02 17:23:02 +[ 1820.601503] {3}[Hardware Error]: Error 0, type: recoverable +[ 1820.607147] {3}[Hardware Error]: section_type: ARM processor error +[ 1820.613485] {3}[Hardware Error]: MIDR: 0x00000000410fd490 +[ 1820.619041] {3}[Hardware Error]: Multiprocessor Affinity Register (MPIDR): 0x0000000081210000 +[ 1820.627723] {3}[Hardware Error]: running state: 0x1 +[ 1820.632759] {3}[Hardware Error]: Power State Coordination Interface state: 0 +[ 1820.639965] {3}[Hardware Error]: Error info structure 0: +[ 1820.645435] {3}[Hardware Error]: num errors: 1 +[ 1820.650037] {3}[Hardware Error]: error_type: 0, cache error +[ 1820.655854] {3}[Hardware Error]: error_info: 0x0000000000800015 +[ 1820.662019] {3}[Hardware Error]: transaction type: Instruction +[ 1820.668183] {3}[Hardware Error]: cache level: 2 +[ 1820.673045] {3}[Hardware Error]: the error has not been corrected +[ 1820.679470] {3}[Hardware Error]: type: CORE (0x41), ras_count:1 +[ 1820.685461] {3}[Hardware Error]: sub_type: 0x0 +[ 1820.689977] {3}[Hardware Error]: fr: 0x10a9a2, ctrl: 0x0, status: 0x44800007, addr: 0x800e9f716acea53d +[ 1820.699352] {3}[Hardware Error]: misc0: 0x4, misc1: 0x0, misc2: 0x0, misc3: 0x0 +``` + +##### Processor Uncorrectable fatal + +Script to inject and trigger processor uncorrectable fatal error. Note, a fatal error will cause the kernel to panic. + +```bash +APEI_IF=/sys/kernel/debug/apei/einj +echo 33 > $APEI_IF/param3 # APIC ID +echo 0x1 > $APEI_IF/flags +echo 0x00000004 > $APEI_IF/error_type +echo 1 > $APEI_IF/error_inject +``` + +The dmesg log: + +```bash +[10862.838686] {10}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 3 +[10862.838687] {10}[Hardware Error]: event severity: fatal +[10862.838688] {10}[Hardware Error]: precise tstamp: 2023-01-02 19:53:43 +[10862.838688] {10}[Hardware Error]: Error 0, type: fatal +[10862.838688] {10}[Hardware Error]: section_type: ARM processor error +[10862.838689] {10}[Hardware Error]: MIDR: 0x00000000410fd490 +[10862.838689] {10}[Hardware Error]: Multiprocessor Affinity Register (MPIDR): 0x0000000081210000 +[10862.838689] {10}[Hardware Error]: running state: 0x1 +[10862.838690] {10}[Hardware Error]: Power State Coordination Interface state: 0 +[10862.838690] {10}[Hardware Error]: Error info structure 0: +[10862.838691] {10}[Hardware Error]: num errors: 1 +[10862.838691] {10}[Hardware Error]: error_type: 0, cache error +[10862.838691] {10}[Hardware Error]: error_info: 0x0000000000800015 +[10862.838692] {10}[Hardware Error]: transaction type: Instruction +[10862.838692] {10}[Hardware Error]: cache level: 2 +[10862.838693] {10}[Hardware Error]: the error has not been corrected +[10862.838693] {10}[Hardware Error]: type: CORE (0x41), ras_count:1 +[10862.838693] {10}[Hardware Error]: sub_type: 0x0 +[10862.838694] {10}[Hardware Error]: fr: 0x10a9a2, ctrl: 0x0, status: 0x74000007, addr: 0x800e9f716acea53d +[10862.838694] {10}[Hardware Error]: misc0: 0x4, misc1: 0x0, misc2: 0x0, misc3: 0x0 +[10862.838695] Kernel panic - not syncing: Fatal hardware error! +``` + +#### Memory + +##### Correctable + +Firstly, run a `victim` program in the background. The `victim` is one of the ras-tools which allocates a page in userspace and dumps the virtual and physical address of the page, and then holds on to trigger. + +```bash +#victim -d & +[1] 12472 +physical address of (0xffff87fb2000) = 0x89a0f8000 +Hit any key to trigger error: +[1]+ Stopped victim -d +``` + +Then run the bellow script to inject and trigger memory correct error. Note, the CE recovery is usually implemented as a threshold based error reporting mechanism. The default threshold for CE is 5000, in other words, the hardware only signal interrupt per 5000 CE errors. To test the feature, we configure CE threshold as 0. + +```bash +echo 0x89a0f8000 > $APEI_IF/param1 +echo 0xfffffffffffff000 > $APEI_IF/param2 +echo 0x1 > $APEI_IF/flags +echo 0x00000008 > $APEI_IF/error_type +echo 1 > $APEI_IF/error_inject +``` + +The dmesg log: + +```bash +[ 1555.991595] EDAC MC0: 1 CE single-symbol chipkill ECC on unknown memory (node:0 card:0 module:0 rank:0 bank_group:4 bank_address:2 device:0 row:616 column:1024 chip_id:0 page:0x89a0f8 offset:0x0 grain:1 syndrome:0x0 - APEI location: node:0 card:0 module:0 rank:0 bank_group:4 bank_address:2 device:0 row:616 column:1024 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 1555.991600] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 1555.991602] {1}[Hardware Error]: It has been corrected by h/w and requires no further action +[ 1555.991602] {1}[Hardware Error]: event severity: corrected +[ 1555.991604] {1}[Hardware Error]: precise tstamp: 2023-01-02 17:18:38 +[ 1555.991604] {1}[Hardware Error]: Error 0, type: corrected +[ 1555.991606] {1}[Hardware Error]: section_type: memory error +[ 1555.991606] {1}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 1555.991607] {1}[Hardware Error]: physical_address: 0x000000089a0f8000 +[ 1555.991608] {1}[Hardware Error]: node:0 card:0 module:0 rank:0 bank_group:4 bank_address:2 device:0 row:616 column:1024 chip_id:0 +[ 1555.991609] {1}[Hardware Error]: error_type: 4, single-symbol chipkill ECC +[ 1555.991610] {1}[Hardware Error]: type: DDR (0x50), ras_count:1 +[ 1555.991611] {1}[Hardware Error]: sub_type: 0x0 +[ 1555.991612] {1}[Hardware Error]: fr: 0x1000200000022, ctrl: 0x0, status: 0x0, addr: 0x0 +[ 1555.991612] {1}[Hardware Error]: misc0: 0x0, misc1: 0x0, misc2: 0x200000000000000, misc3: 0x900000000000000 +``` + +##### Memory UnCorrectable Non-fatal + +Firstly, run a `victim` program in the background as the last section described. + +```bash +#victim -d & +physical address of (0xffff962d0000) = 0x9f8acb000 +Hit any key to trigger error: +[1]+ Stopped victim -d +``` + +Then run the bellow script to inject and trigger memory correct error. Here, we specify `notrigger` to 0 to let the firmware kick the DDRC scrubber to trigger the error. + +```bash +APEI_IF=/sys/kernel/debug/apei/einj +echo 0x400a4919000 > $APEI_IF/param1 +echo 0xfffffffffffff000 > $APEI_IF/param2 +echo 0x1 > $APEI_IF/flags +echo 0x00000010 > $APEI_IF/error_type +echo 0x0 > $APEI_IF/notrigger +echo 1 > $APEI_IF/error_inject +``` + +The dmesg log: + +```bash +[ 211.121855] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 211.132646] {1}[Hardware Error]: event severity: recoverable +[ 211.138292] {1}[Hardware Error]: precise tstamp: 2022-12-30 15:26:40 +[ 211.144717] {1}[Hardware Error]: Error 0, type: recoverable +[ 211.150362] {1}[Hardware Error]: section_type: memory error +[ 211.156096] {1}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 211.165125] {1}[Hardware Error]: physical_address: 0x00000400a4919000 +[ 211.171725] {1}[Hardware Error]: node:0 card:7 module:0 rank:0 bank_group:7 bank_address:0 device:0 row:146 column:1152 chip_id:0 +[ 211.183619] {1}[Hardware Error]: error_type: 14, scrub uncorrected error +[ 211.190479] {1}[Hardware Error]: type: DDR (0x50), ras_count:1 +[ 211.196383] {1}[Hardware Error]: sub_type: 0x0 +[ 211.200899] {1}[Hardware Error]: fr: 0x1000200000353, ctrl: 0x0, status: 0x0, addr: 0x0 +[ 211.208974] {1}[Hardware Error]: misc0: 0x0, misc1: 0x0, misc2: 0x0, misc3: 0x200000000000500 +[ 211.218375] Memory failure: 0x400a4919: recovery action for dirty LRU page: Recovered +``` + +At this point, the allocated physical page is unmapped and poisoned, any read access will trigger a page fault. +If we move the background process `victim`on current Linux shell to the foreground and hit any key, the victim will trigger a page fault and receive a SIGBUS signal due to the poisoned PTE entry. Because the `victim`process does not register the SIGBUS handler, it will be killed. + +```bash +#fg +victim -d + +Access time at Fri Dec 30 15:38:14 2022 + +Bus error +``` + +We can also specify `notrigger` to 1 to let the firmware skip the trigger phase and allow the `victim` process to access the target of the error injection so that the error will be detected in execution context. + +Firstly, select a page and inject an error to it, while explicitly skipping the firmware trigger phase. + +```bash +#victim -d & +[1] 9522 +physical address of (0xffffaed6d000) = 0x400aa6dd000 +Hit any key to trigger error: +[1]+ Stopped victim -d + +APEI_IF=/sys/kernel/debug/apei/einj + +echo 0x400aa6dd000 > $APEI_IF/param1 +echo 0xfffffffffffff000 > $APEI_IF/param2 +echo 0x1 > $APEI_IF/flags +echo 0x00000010 > $APEI_IF/error_type +echo 0x1 > $APEI_IF/notrigger +echo 1 > $APEI_IF/error_inject +``` + +Then move the background process `victim` on current Linux shell to the foreground and hit any key, so that the error will be triggered in execution context. The kernel will poison the page and unmap it, then send SIGBUS to the process which accesses the page. + +```bash +#fg +victim -d + +Access time at Fri Dec 30 15:39:26 2022 + +Bus error +``` + +The dmesg log: + +```bash +[ 799.958832] {3}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 799.969533] {3}[Hardware Error]: event severity: recoverable +[ 799.975179] {3}[Hardware Error]: precise tstamp: 2022-12-30 15:36:29 +[ 799.981603] {3}[Hardware Error]: Error 0, type: recoverable +[ 799.987248] {3}[Hardware Error]: section_type: memory error +[ 799.992978] {3}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 800.002007] {3}[Hardware Error]: physical_address: 0x00000400aa6dd000 +[ 800.008607] {3}[Hardware Error]: node:0 card:5 module:0 rank:1 bank_group:1 bank_address:0 device:0 row:169 column:1664 chip_id:0 +[ 800.020500] {3}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 800.027446] {3}[Hardware Error]: type: DDR (0x50), ras_count:1 +[ 800.033351] {3}[Hardware Error]: sub_type: 0x0 +[ 800.037866] {3}[Hardware Error]: fr: 0x1001000100000000, ctrl: 0xf000000000920004, status: 0xd800000Cor0040](0xadd040000d0receiveaecntr=526(d1.subch3), cnt=0x1 +[ 800.060436] {3}[Hardware Error]: misc0: 0x3f00000000040307, misc1: 0xd00000000030cd18, misc2: 0x4015, misc3: 0x200000000000100 +[ 800.072366] Memory failure: 0x400aa6dd: recovery action for dirty LRU page: Recovered +``` + +### RAS-tools + +We can also test and validate RAS features of whole system stack across hardware, firmware and OS via ras-tools. Ras-tools are an excellent set of tools to inject and test RAS ability on X86 and Arm64 platforms based on the APEI EINJ interface. + +| tools | fatal | arch | Description | Usage | +| ----------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | +| einj_mem_uc | See help | x86、Arm | inject an error and then trigger it in one of a variety of ways. | ./einj_mem_uc # See help for testname | +| cmcistorm | No | x86 | use EINJ to inject a bunch of soft errors, then consume them all as fast as possible. | ./cmcistorm # e.g./cmcistorm 20 1 | +| hornet | No | x86、Arm | Start a process (or point to an existing one) and inject an uncorrectable memory error to a targeted or randomly chosen memory address | ./hornet -p PID | +| lmce | No | x86 | local mce | ./lmce | +| mca-recover | No | x86、Arm | Set up to get zapped by a machine check (injected elsewhere) recovery function reports physical address of new page - so we can inject to that and repeat over and over. | ./mca-recover | +| rep_ce_page | No | x86、Arm | loop using EINJ to inject a soft error, consuming after each until the page is taken offline. | ./rep_ce_page | +| vtop | No | x86、Arm | Given a process if and virtual address, dig around in /proc/id/pagemap to find the physical address (if present) behind the virtual one. | ./vtop | +| memattr | No | Arm | Example of the Linux kernel driver that allows a user-space program to mmap a buffer of contiguous physical memory with specific memory attribute. | cd pgprot-drv
make
insmod pgprot_drv.ko pgprot=4
../memattr| +| ras-tolerance | No | Arm | This driver allows to overwrite error severity to a lower level at runtime, recoverable by default. It is useful for test. | cd ras-tolerance
make
insmod ras_tolerance.ko| + +#### Install + +On servers running Anolis OS, you can install ras-tools through `yum`. On other OSes, you could build it from scratch. + +``` bash +yum install ras-tools +``` + +#### Memory Failure Recovery Validation + +The `einj_mem_uc` tool allocates pages, injects an error and then triggers it in one of a variety of ways. It intends to do a coverage test for testing the Linux RAS related features, including CPU/Memory error containment and recovery. + +##### AR Validation + +###### User Space AR-data Recovery + +In the case of an AR-data abort event e.g. `single`, `doube`,`split`,`hugetlb`,etc, the kernel will attempt to hard-offline the page, by poisoning the page and killing accessing process. For example, `single` case, it injects an uncorrected error and triggers the error by reading a byte. + +```bash +# einj_mem_uc single +0: single vaddr = 0xffff857a3400 paddr = 8e6157400 +injecting ... +triggering ... +signal 7 code 4 addr 0xffff857a3400 +page not present +Test passed +``` + +`einj_mem_uc` will print the received signal and its code, in the above case, + +- signal 7: SIGBUS +- code 4: BUS_MCEERR_AR 4 + +The dmesg log: + +```bash +[ 1785.908893] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:0 module:0 rank:0 bank_group:1 bank_address:2 device:0 row:920 column:896 chip_id:0 page:0x8e6157 offset:0x400 grain:1 - APEI location: node:0 card:0 module:0 rank:0 bank_group:1 bank_address:2 device:0 row:920 column:896 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 1785.908900] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 1785.919531] {1}[Hardware Error]: event severity: recoverable +[ 1785.925176] {1}[Hardware Error]: precise tstamp: 2023-01-17 18:05:09 +[ 1785.931600] {1}[Hardware Error]: Error 0, type: recoverable +[ 1785.937244] {1}[Hardware Error]: section_type: memory error +[ 1785.942975] {1}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 1785.952004] {1}[Hardware Error]: physical_address: 0x00000008e6157400 +[ 1785.958603] {1}[Hardware Error]: node:0 card:0 module:0 rank:0 bank_group:1 bank_address:2 device:0 row:920 column:896 chip_id:0 +[ 1785.970409] {1}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 1785.977355] {1}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 1785.983606] {1}[Hardware Error]: Synchronous Exception taken in EL0 +[ 1785.989944] {1}[Hardware Error]: ESR: 0x92000410, ELR: 0x403abc, FAR: 0xfa00a88, SCR: 0x403073d, SCTLR: 0x30cd183f, LR: 0x403abc +[ 1786.001578] {1}[Hardware Error]: ECCERRCNT: 0x10000, ECCSTAT: 0x0, ADVECCSTAT: 0x8000002, ECCSYMBOL: 0x170000, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0x398, ECCUADDR1: 0x1020380, ECCUDATA0: 0x1ff, ECCUDATA1: 0x0 +[ 1786.036640] Memory failure: 0x8e6157: recovery action for dirty LRU page: Recovered + +``` + +###### User Space AR-instruction Recovery + +In the case of an AR-instruction abort event, e.g. `instr`, it injects an uncorrected error and triggers the error by reading a byte. The kernel will attempt to hard-offline the page. It unmaps the corrupted page, reloads the 4KB page containing the instruction to a new physical page and resumes normal operation. + +```bash +# einj_mem_uc instr +0: instr vaddr = 0x403000 paddr = 8bba93000 +injecting ... +triggering ... +Test passed +``` + +The dmesg log: + +```bash +[ 1945.804589] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:7 module:0 rank:1 bank_group:1 bank_address:3 device:0 row:527 column:640 chip_id:0 page:0x40883e65 offset:0x0 grain:1 - APEI location: node:0 card:7 module:0 rank:1 bank_group:1 bank_address:3 device:0 row:527 column:640 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 1945.804596] {3}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 1945.815209] {3}[Hardware Error]: event severity: recoverable +[ 1945.820854] {3}[Hardware Error]: precise tstamp: 2023-01-17 18:07:49 +[ 1945.827280] {3}[Hardware Error]: Error 0, type: recoverable +[ 1945.832924] {3}[Hardware Error]: section_type: memory error +[ 1945.838654] {3}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 1945.847683] {3}[Hardware Error]: physical_address: 0x0000040883e65000 +[ 1945.854283] {3}[Hardware Error]: node:0 card:7 module:0 rank:1 bank_group:1 bank_address:3 device:0 row:527 column:640 chip_id:0 +[ 1945.866089] {3}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 1945.873035] {3}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 1945.879286] {3}[Hardware Error]: Synchronous Exception taken in EL0 +[ 1945.885625] {3}[Hardware Error]: ESR: 0x82000010, ELR: 0x403000, FAR: 0x403000, SCR: 0x403073d, SCTLR: 0x30cd183f, LR: 0x403f94 +[ 1945.906459] {3}[Hardware Error]: ECCERRCNT: 0x10000, ECCSTAT: 0x0, ADVECCSTAT: 0x8000002, ECCSYMBOL: 0x140000, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0x100020f, ECCUADDR1: 0x1030280, ECCUDATA0: 0x1ff, ECCUDATA1: 0x0 +[ 1945.934071] Memory failure: 0x40883e65: corrupted page was clean: dropped without side effects +[ 1945.934084] Memory failure: 0x40883e65: recovery action for clean LRU page: Recovered +``` + +###### Kernel Space AR Recovery + +Kernel Space AR Recovery is only supported on X86 platform and we are still working on it on Arm64 platform. The recovery is evaluated on X86 icelake processor. + +First, inject an uncorrected error and trigger it by writing a buffer to a file. Kernel will copy data from user space and then write to disk. + +```bash +# einj_mem_uc copyin -f +0: copyin vaddr = 0x7f8f873e2400 paddr = 2869c1400 +injecting ... +triggering ... +einj_mem_uc: couldn't write temp file (errno=14) +Big surprise ... still running. Thought that would be fatal +Saw local machine check +Test passed +``` + +As we can see, the process is still running and the return errno for the write(2) is EFAULT(14). + +The dmesg log: + +```bash +SetMemoryDeviceStatus UCE error. Data = 00 4C A5 01 02 00 06 01 05 00 00 00 00 00 Status = Success +[15322.535921] mce: Kernel accessed poison in user space at 2869c1400 +[15322.536023] {2}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0 +[15322.542117] Memory failure: 0x2869c1: recovery action for dirty LRU page: Recovered +[15322.550382] {2}[Hardware Error]: event severity: recoverable +[15322.550385] {2}[Hardware Error]: Error 0, type: recoverable +[15322.558042] Memory failure: 0x2869c1: already hardware poisoned +[15322.563710] {2}[Hardware Error]: fru_text: Card02, ChnF, DIMM0 +[15322.563712] {2}[Hardware Error]: section_type: memory error +[15322.586981] {2}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[15322.596027] {2}[Hardware Error]: physical_address: 0x00000002869c1400 +[15322.602650] {2}[Hardware Error]: node:1 card:5 module:0 rank:0 bank:13 device:0 row:2075 column:8 +[15322.611783] {2}[Hardware Error]: error_type: 3, multi-bit ECC +[15322.617710] {2}[Hardware Error]: DIMM location: not present. DMI handle: 0x0000 +[15322.625304] Memory failure: 0x2869c1: already hardware poisoned +[15322.631827] EDAC MC6: 1 UE memory read error on CPU_SrcID#1_MC#2_Chan#1_DIMM#0 (channel:1 slot:0 page:0x2869c1 offset:0x400 grain:32 - err_code:0x00a0:0x0091 SystemAddress:0x2869c1400 ProcessorSocketId:0x1 MemoryControllerId:0x2 ChannelAddress:0x2069c000 ChannelId:0x1 RankAddress:0x1034e000 PhysicalRankId:0x0 DimmSlotId:0x0 Row:0x81b Column:0x8 Bank:0x1 BankGroup:0x3 ChipSelect:0x0 ChipId:0x0) +[15322.667403] EDAC MC6: 1 UE memory read error on CPU_SrcID#1_MC#2_Chan#1_DIMM#0 (channel:1 slot:0 page:0x2869c1 offset:0x400 grain:32 - err_code:0x0000:0x009f SystemAddress:0x2869c1400 ProcessorSocketId:0x1 MemoryControllerId:0x2 ChannelAddress:0x2069c000 ChannelId:0x1 RankAddress:0x1034e000 PhysicalRankId:0x0 DimmSlotId:0x0 Row:0x81b Column:0x8 Bank:0x1 BankGroup:0x3 ChipSelect:0x0 ChipId:0x0) +``` + +futex(2) is another system call in which kernel copies data from user space. Inject an uncorrected error and trigger it by issuing `FUTEX_WAIT` operation. + +```bash +# einj_mem_uc futex -f +0: futex vaddr = 0x7f8a1da83400 paddr = 25751d400 +injecting ... +triggering ... +futex returned with errno=14 +Big surprise ... still running. Thought that would be fatal +Unusual number of MCEs seen: 2 +Test passed +``` + +There are many retries in futex(2) mechanism, so it is possible to see many MCEs. + +The dmesg log: + +```bash +SetMemoryDeviceStatus UCE error. Data = 00 4C A5 01 02 00 06 01 05 00 00 00 00 00 Status = Success +[15521.242381] mce: Kernel accessed poison in user space at 25751d400 +[15521.242437] {4}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0 +[15521.248581] Memory failure: 0x25751d: recovery action for dirty LRU page: Recovered +[15521.256842] {4}[Hardware Error]: event severity: recoverable +[15521.256845] {4}[Hardware Error]: Error 0, type: recoverable +[15521.256847] {4}[Hardware Error]: fru_text: Card02, ChnF, DIMM0 +[15521.264506] Memory failure: 0x25751d: already hardware poisoned +[15521.270172] {4}[Hardware Error]: section_type: memory error +[15521.270173] {4}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[15521.270174] {4}[Hardware Error]: physical_address: 0x000000025751d400 +[15521.309103] {4}[Hardware Error]: node:1 card:5 module:0 rank:0 bank:4 device:0 row:1882 column:896 +[15521.318322] {4}[Hardware Error]: error_type: 3, multi-bit ECC +[15521.324252] {4}[Hardware Error]: DIMM location: not present. DMI handle: 0x0000 +[15521.331824] {4}[Hardware Error]: Error 1, type: recoverable +[15521.337484] {4}[Hardware Error]: section_type: memory error +[15521.343240] {4}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[15521.352286] {4}[Hardware Error]: physical_address: 0x000000025751d400 +[15521.358910] {4}[Hardware Error]: node:1 +[15521.363017] {4}[Hardware Error]: error_type: 3, multi-bit ECC +[15521.369040] Memory failure: 0x25751d: already hardware poisoned +[15521.374974] Memory failure: 0x25751d: already hardware poisoned +[15521.381515] EDAC MC6: 1 UE memory read error on CPU_SrcID#1_MC#2_Chan#1_DIMM#0 (channel:1 slot:0 page:0x25751d offset:0x400 grain:32 - err_code:0x00a0:0x0091 SystemAddress:0x25751d400 ProcessorSocketId:0x1 MemoryControllerId:0x2 ChannelAddress:0x1d751c00 ChannelId:0x1 RankAddress:0xeba9c00 PhysicalRankId:0x0 DimmSlotId:0x0 Row:0x75a Column:0x380 Bank:0x0 BankGroup:0x1 ChipSelect:0x0 ChipId:0x0) +[15521.417060] EDAC MC6: 1 UE memory read error on CPU_SrcID#1_MC#2_Chan#1_DIMM#0 (channel:1 slot:0 page:0x25751d offset:0x400 grain:32 - err_code:0x0000:0x009f SystemAddress:0x25751d400 ProcessorSocketId:0x1 MemoryControllerId:0x2 ChannelAddress:0x1d751c00 ChannelId:0x1 RankAddress:0xeba9c00 PhysicalRankId:0x0 DimmSlotId:0x0 Row:0x75a Column:0x380 Bank:0x0 BankGroup:0x1 ChipSelect:0x0 ChipId:0x0) +[15521.452740] EDAC MC6: 1 UE memory read error on CPU_SrcID#1_MC#2_Chan#1_DIMM#0 (channel:1 slot:0 page:0x25751d offset:0x400 grain:32 - err_code:0x0000:0x009f SystemAddress:0x25751d400 ProcessorSocketId:0x1 MemoryControllerId:0x2 ChannelAddress:0x1d751c00 ChannelId:0x1 RankAddress:0xeba9c00 PhysicalRankId:0x0 DimmSlotId:0x0 Row:0x75a Column:0x380 Bank:0x0 BankGroup:0x1 ChipSelect:0x0 ChipId:0x0) +``` + +##### AO Validation + +###### AO Patrol Recovery + +In the case of an AO event e.g. `patrol`, the kernel will attempt to hard-offline the page, by just poisoning and unmapping the page. Inject and trigger patrol error. Note, in this section, the HWPoison-aware strategy is default late kill. + +```bash +# einj_mem_uc patrol +0: patrol vaddr = 0xffff9d523400 paddr = 400a2575400 +injecting ... +triggering ... +page not present +Test passed +``` + +The dmesg log: + +```bash +[ 2026.290450] EDAC MC0: 1 UE scrub uncorrected error on unknown memory (node:0 card:6 module:0 rank:0 bank_group:2 bank_address:3 device:0 row:137 column:640 chip_id:0 page:0x400a2575 offset:0x400 grain:1 - APEI location: node:0 card:6 module:0 rank:0 bank_group:2 bank_address:3 device:0 row:137 column:640 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 2026.290460] {4}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 2026.301258] {4}[Hardware Error]: event severity: recoverable +[ 2026.306903] {4}[Hardware Error]: precise tstamp: 2023-01-17 18:09:10 +[ 2026.313328] {4}[Hardware Error]: Error 0, type: recoverable +[ 2026.318972] {4}[Hardware Error]: section_type: memory error +[ 2026.324703] {4}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 2026.333732] {4}[Hardware Error]: physical_address: 0x00000400a2575400 +[ 2026.340331] {4}[Hardware Error]: node:0 card:6 module:0 rank:0 bank_group:2 bank_address:3 device:0 row:137 column:640 chip_id:0 +[ 2026.352138] {4}[Hardware Error]: error_type: 14, scrub uncorrected error +[ 2026.358998] {4}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 2026.365249] {4}[Hardware Error]: Interrupt: 843 +[ 2026.369852] {4}[Hardware Error]: ECCERRCNT: 0x40000, ECCSTAT: 0x0, ADVECCSTAT: 0x88000002, ECCSYMBOL: 0xec0000, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0x89, ECCUADDR1: 0x2030280, ECCUDATA0: 0x1ff, ECCUDATA1: 0x0 +[ 2026.397264] Memory failure: 0x400a2575: recovery action for dirty LRU page: Recovered +``` + +###### AO Prefetch Recovery + +First, inject an uncorrected error and trigger it by explicitly performing a `prfm`. The platform will signal an interrupt. + +```bash +#einj_mem_uc prefetch +0: prefetch vaddr = 0xffffbe03f400 paddr = 8c17eb400 +injecting ... +triggering ... +page not present +Test passed +``` + +The dmesg log: + +```bash +[ 7616.802823] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 7616.813922] {1}[Hardware Error]: event severity: recoverable +[ 7616.819566] {1}[Hardware Error]: Error 0, type: recoverable +[ 7616.825210] {1}[Hardware Error]: section_type: memory error +[ 7616.830940] {1}[Hardware Error]: error_status: 0x0000000000000400 +[ 7616.837191] {1}[Hardware Error]: physical_address: 0x00000008c17eb400 +[ 7616.843791] {1}[Hardware Error]: node: 0 card: 0 module: 0 rank: 1 bank_group: 3 bank_address: 0 device: 0 row: 773 column: 1408 +[ 7616.855597] {1}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 7616.862543] {1}[Hardware Error]: type: DDR (0x50), ras_count:1 +[ 7616.868447] {1}[Hardware Error]: sub_type: 0x0 +[ 7616.872962] {1}[Hardware Error]: fr: 0x1000200000026, ctrl: 0x0, status: 0x0, addr: 0x0 +[ 7616.881036] {1}[Hardware Error]: misc0: 0x0, misc1: 0x0, misc2: 0x0, misc3: 0x200000000000100 +[ 7616.889888] Memory failure: 0x8c17eb: recovery action for dirty LRU page: Recovered +``` + +###### AO Store Recovery + +First, inject an uncorrected error and trigger it by writing a byte. The write size is less than 64 bits and the platform will signal a SError. + +```bash +# einj_mem_uc strbyte +0: strbyte vaddr = 0xffffa3651400 paddr = 400afd01400 +injecting ... +triggering ... +page not present +Test passed +``` + +The dmesg log: + +```bash +[ 2378.241939] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:5 module:0 rank:0 bank_group:2 bank_address:1 device:0 row:191 column:128 chip_id:0 page:0x400afd01 offset:0x400 grain:1 - APEI location: node:0 card:5 module:0 rank:0 bank_group:2 bank_address:1 device:0 row:191 column:128 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 2378.241945] {5}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 2378.252573] {5}[Hardware Error]: event severity: recoverable +[ 2378.258217] {5}[Hardware Error]: precise tstamp: 2023-01-17 18:15:02 +[ 2378.264642] {5}[Hardware Error]: Error 0, type: recoverable +[ 2378.270286] {5}[Hardware Error]: section_type: memory error +[ 2378.276017] {5}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 2378.285045] {5}[Hardware Error]: physical_address: 0x00000400afd01400 +[ 2378.291644] {5}[Hardware Error]: node:0 card:5 module:0 rank:0 bank_group:2 bank_address:1 device:0 row:191 column:128 chip_id:0 +[ 2378.303451] {5}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 2378.310398] {5}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 2378.316649] {5}[Hardware Error]: SError +[ 2378.320558] {5}[Hardware Error]: ECCERRCNT: 0x10000, ECCSTAT: 0x0, ADVECCSTAT: 0x8000002, ECCSYMBOL: 0x6f0000, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0xbf, ECCUADDR1: 0x2010080, ECCUDATA0: 0x1ff, ECCUDATA1: 0x0 +[ 2378.360399] Memory failure: 0x400afd01: recovery action for dirty LRU page: Recovered +``` + +In contrast, inject an uncorrected error and trigger it by writing a quad word. The write size is 64 bits and the platform will not signal SErrors. + +```bash +# einj_mem_uc strqword +0: strqword vaddr = 0xffff991b5400 paddr = 92b73c400 +injecting ... +triggering ... +Manually take page offline +Test passed +``` + +The dmesg log: + +```bash +[270286.564242] Memory failure: 0x92b73c: recovery action for dirty LRU page: Recovered +``` + +##### QEMU Validation + +First, start a VM with a stdio monitor which allows giving complex commands to the QEMU emulator. + +```bash +qemu-system-aarch64 -enable-kvm \ + -cpu host \ + -M virt,gic-version=3 \ + -m 8G \ + -d guest_errors \ + -rtc base=localtime,clock=host \ + -smp cores=2,threads=2,sockets=2 \ + -object memory-backend-ram,id=mem0,size=4G \ + -object memory-backend-ram,id=mem1,size=4G \ + -numa node,memdev=mem0,cpus=0-3,nodeid=0 \ + -numa node,memdev=mem1,cpus=4-7,nodeid=1 \ + -bios /usr/share/AAVMF/AAVMF_CODE.fd \ + -drive driver=qcow2,media=disk,cache=writeback,if=virtio,id=alinu1_rootfs,file=/media/nvme/shawn.xs/qemu/aliyun_3_arm64_20G_alpha_alibase_20210425.qcow2 \ + -netdev user,id=n1,hostfwd=tcp::5555-:22 \ + -serial telnet:localhost:4321,server,nowait \ + -device virtio-net-pci,netdev=n1 \ + -monitor stdio +QEMU 7.2.0 monitor - type 'help' for more information +(qemu) VNC server running on 127.0.0.1:5900 +``` + +Login guest and install ras-tools, then run `einj_mem_uc` to allocate a page in userspace, dumps the virtual and physical address of the page. The `-j` is to skip error injection and `-k` is to wait for a kick. + +``` bash +$ einj_mem_uc single -j -k +0: single vaddr = 0xffffb2f27000 paddr = 154aba000 +``` + +Run command `gpa2hpa` in QEMU monitor and it will print the host physical address at which the guest’s physical address addr is mapped. + +``` bash +(qemu) gpa2hpa 0x151f21400 +Host physical address for 0x154aba000 (mem1) is 0x92b3c5000 +``` + +Inject an uncorrected error via the APEI interface to the finally translated host physical address on host. + +``` bash +echo 0x92b3c5000 > /sys/kernel/debug/apei/einj/param1 +echo 0xfffffffffffff000 > /sys/kernel/debug/apei/einj/param2 +echo 0x0 > /sys/kernel/debug/apei/einj/flags +echo 0x10 > /sys/kernel/debug/apei/einj/error_type +echo 1 > /sys/kernel/debug/apei/einj/notrigger +echo 1 > /sys/kernel/debug/apei/einj/error_inject +``` + +Then kick `einj_mem_uc` to trigger the error by writing "trigger_start". In this example, the kick is done on host. + +``` bash +#ssh -p 5555 root@localhost "echo trigger > ~/trigger_start" +``` + +We will observe that the QEMU process exit. + +``` bash +(qemu) qemu-system-aarch64: Hardware memory error! +``` + +The dmesg log: + +``` bash +[ 2705.654424] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 page:0x92b3c5 offset:0x0 grain:1 - APEI location: node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 2705.654432] {6}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 2705.665047] {6}[Hardware Error]: event severity: recoverable +[ 2705.670692] {6}[Hardware Error]: precise tstamp: 2023-01-17 18:20:29 +[ 2705.677118] {6}[Hardware Error]: Error 0, type: recoverable +[ 2705.682762] {6}[Hardware Error]: section_type: memory error +[ 2705.688492] {6}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 2705.697521] {6}[Hardware Error]: physical_address: 0x000000092b3c5000 +[ 2705.704121] {6}[Hardware Error]: node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 +[ 2705.716014] {6}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 2705.722960] {6}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 2705.729212] {6}[Hardware Error]: Synchronous Exception taken in EL0 +[ 2705.735551] {6}[Hardware Error]: ESR: 0x92000410, ELR: 0x401880, FAR: 0xffffb2e8c1d8, SCR: 0x403073d, SCTLR: 0x30cd183f, LR: 0x401840 +[ 2705.747619] {6}[Hardware Error]: ECCERRCNT: 0x10000, ECCSTAT: 0x0, ADVECCSTAT: 0x8000002, ECCSYMBOL: 0x60000, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0x10004ac, ECCUADDR1: 0x4020280, ECCUDATA0: 0x1ff, ECCUDATA1: 0x0 +[ 2705.887179] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 page:0x92b3c5 offset:0x0 grain:1 - APEI location: node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +[ 2705.887181] {7}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 2 +[ 2705.897824] {7}[Hardware Error]: event severity: recoverable +[ 2705.903468] {7}[Hardware Error]: precise tstamp: 2023-01-17 18:20:29 +[ 2705.909893] {7}[Hardware Error]: Error 0, type: recoverable +[ 2705.915537] {7}[Hardware Error]: section_type: memory error +[ 2705.921267] {7}[Hardware Error]: error_status: Storage error in DRAM memory (0x0000000000000400) +[ 2705.930296] {7}[Hardware Error]: physical_address: 0x000000092b3c5000 +[ 2705.936895] {7}[Hardware Error]: node:0 card:0 module:0 rank:1 bank_group:4 bank_address:2 device:0 row:1196 column:640 chip_id:0 +[ 2705.948790] {7}[Hardware Error]: error_type: 5, multi-symbol chipkill ECC +[ 2705.955736] {7}[Hardware Error]: type: DDR (0x50), common_reg_nr:1 +[ 2705.961988] {7}[Hardware Error]: Synchronous Exception taken in EL0 +[ 2705.968326] {7}[Hardware Error]: ESR: 0x92000410, ELR: 0x401880, FAR: 0xffffb2e8c1d8, SCR: 0x403073d, SCTLR: 0x30cd183f, LR: 0x401840 +[ 2705.980394] {7}[Hardware Error]: ECCERRCNT: 0x0, ECCSTAT: 0x0, ADVECCSTAT: 0x0, ECCSYMBOL: 0x0, ECCERRCNTSTAT: 0x0, ECCERRCNT0: 0x0, ECCERRCNT1: 0x0, ECCCADDR0: 0x0, ECCCADDR1: 0x0, ECCCDATA0: 0x0, ECCCDATA1: 0x0, ECCUADDR0: 0x10004ac, ECCUADDR1: 0x4020280, ECCUDATA0: 0x0, ECCUDATA1: 0x0 +[ 2706.006235] Memory failure: 0x92b3c5: Sending SIGBUS to qemu-system-aar:32293 due to hardware memory corruption +[ 2706.078549] Memory failure: 0x92b3c5: recovery action for dirty LRU page: Recovered +[ 2706.092539] Memory failure: 0x92b3c5: already hardware poisoned +[ 2706.118501] EDAC MC0: 1 UE multi-symbol chipkill ECC on unknown memory (node:0 card:0 module:0 rank:0 bank_group:1 bank_address:2 device:0 row:920 column:896 chip_id:0 page:0x0 offset:0x0 grain:1 - APEI location: node:0 card:0 module:0 rank:0 bank_group:1 bank_address:2 device:0 row:920 column:896 chip_id:0 status(0x0000000000000400): Storage error in DRAM memory) +``` + +Note, QEMU registers SIGBUS handler and sets `PR_MCE_KILL_EARLY` by `prctl`. When an AO error occurs, e.g. detected by scrubber, kernel will also send SIGBUS but with sicode `BUS_MCEERR_AO 5`. + +##### HWPoison-aware Strategy + +First, check the strategy on your system. + +```bash +#sysctl vm.memory_failure_early_kill +vm.memory_failure_early_kill = 0 +``` + +Change to early kill mode: + +```bash +#sysctl -w vm.memory_failure_early_kill=1 +vm.memory_failure_early_kill = 1 +``` + +Then inject a `patrol` error to see the kernel behavior. + +```bash +#./einj_mem_uc patrol +0: patrol vaddr = 0xffffbe4b8400 paddr = 901656400 +injecting ... +triggering ... +signal 7 code 5 addr 0xffffbe4b8000 +Unexpected SIGBUS +page not present +Test passed +``` + +As we expected, the kernel sends SIGBUS to kill the process even though it does not access the poison data. The `code 5` here means `BUS_MCEERR_AO 5`. + +#### Memory Predictive Failure Analysis Validation + +First of all, you'll need to install **rasdeamon**, it's packaged for most Linux distributions: + +```bash +yum install rasdaemon +``` + +Then we'll setup **rasdaemon** to launch at startup and to record events to an on-disk sqlite database. + +```bash +# systemctl enable rasdaemon +# systemctl start rasdaemon +``` + +Here, we manually change the `PAGE_CE_THRESHOLD="5"` in config file `/etc/sysconfig/rasdaemon` so that we can inject and exceed a page error threshold more easily. Note, run-time configuration is unsupported, service restart is needed. + +```bash +# systemctl restart rasdaemon +``` + +Run `victim` with `-p` option to help test PFA function. The `victim` allocates a page in userspace, dumps the virtual and physical address of the page, and checks the physical address in a loop while. Then inject to the physical address 5 times and it will trigger soft action in which kernel soft-offline the old page, by moving the contents to a new page. + +```bash +#victim -d -p +physical address of (0xffffa5a66000) = 0x967cf1000 +Page was replaced. New physical address = 0x8bce3e000 +``` + +## Acknowledgment + +Thanks to the developers who contributed to the Linux and Anolis communities. + +## Reference + +1. [https://www.intel.com/content/www/us/en/developer/articles/technical/new-reliability-availability-and-serviceability-ras-features-in-the-intel-xeon-processor.html](https://www.intel.com/content/www/us/en/developer/articles/technical/new-reliability-availability-and-serviceability-ras-features-in-the-intel-xeon-processor.html) +2. Reliability, Availability and Serviceability (RAS) Integration and Validation Guide for the Intel® Xeon® Processor E7- v3 Family: [https://www.intel.com/content/dam/develop/external/us/en/documents/emca2-integration-validation-guide-556978.pdf](https://www.intel.com/content/dam/develop/external/us/en/documents/emca2-integration-validation-guide-556978.pdf) +3. [https://docs.kernel.org/admin-guide/ras.html](https://docs.kernel.org/admin-guide/ras.html) +4. [https://static.linaro.org/connect/sfo17/Presentations/SFO17-203%20-%20Reliability%2C%20Availability%2C%20and%20Serviceability%20%28RAS%29%20on%20ARM64%20status.pdf](https://static.linaro.org/connect/sfo17/Presentations/SFO17-203%20-%20Reliability%2C%20Availability%2C%20and%20Serviceability%20%28RAS%29%20on%20ARM64%20status.pdf) +5. Intel® 64 and IA-32 Architectures Software Developer’s Manual +6. [https://developer.ibm.com/articles/l-kernel-memory-access/](https://developer.ibm.com/articles/l-kernel-memory-access/) +7. [https://docs.kernel.org/admin-guide/sysctl/vm.html#memory-failure-early-kill](https://docs.kernel.org/admin-guide/sysctl/vm.html#memory-failure-early-kill) +8. Programming persistent memory: A comprehensive guide for developers +9. [https://trustedfirmware-a.readthedocs.io/en/latest/components/sdei.html](https://trustedfirmware-a.readthedocs.io/en/latest/components/sdei.html#id2) \ No newline at end of file diff --git a/PRODUCT_DOCS/test/test2.md b/PRODUCT_DOCS/test/test2.md new file mode 100644 index 0000000..1732b23 --- /dev/null +++ b/PRODUCT_DOCS/test/test2.md @@ -0,0 +1,34 @@ +## 与会人 +王云志,何佳,黄睿,王宝林,云孟,荆石,刘长生(搏元), +疏明,何求,章新豪
+费斐,帅家坤,Joyce(Linaro),Chase Qi(Linaro) +- 本次轮值主持:贺军 +- 下次轮值主持:王宝林 + +## 主题 +### 1. Arm architectural features support in kernel and toolchain +[Arm A-profile 架构手册](https://developer.arm.com/documentation/ddi0487/latest/) + +Arm架构的各个版本特性的软件支持情况链接: +- Linux Kernel: https://developer.arm.com/Tools%20and%20Software/Linux%20Kernel#Components +- GCC: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain#Supported-Devices +- LLVM: https://developer.arm.com/Tools%20and%20Software/LLVM%20Toolchain#Supported-Devices + +### 2. Kernel test - LKFT introduction +- 来自Linaro的Chase介绍了[Linaro LKFT平台](https://lkft.linaro.org/tests/)的测试流程、用例和支持的硬件 +- 来自阿里的疏明介绍了目前龙蜥社区的测试情况 + - 社区使用T-One(https://tone.openanolis.cn/)做为测试平台,默认覆盖x86和Arm。 测试硬件是Ali ECS的实例。 + - 对CloudKernel的测试构建以build和boot为主;也有通用的regression测试。常用测试方式包括ltp,kselftest和xfstest等 + - 社区需要针对Arm处理器features的专门测试集(类似于lkvs) + - Arm方面会对此调研,并作后续沟通讨论 +### 3. Live patch on Arm +- 来自Arm的何佳介绍了Arm平台上live patch功能在Linux kernel上游和国内distro社区的支持情况,探讨了不同实现方式的局限性和未来的主流做法。 +- 龙蜥社区对目前5.10中的对Live patch的支持方式没有计划进行改动以保持对上游kernel的一致。 + - Arm建议给出相应文档以方便下游OSV和开发者制作正确的patch +- 对LTS选定的6.6内核,Arm SIG同意以kernel上游社区的实现(patch原型)为基础,进行backport。测试覆盖以kselftest和hotfix为标准。 +### 4. Arm SIG例会形式 +参会者同意以双周会的方式举办例会,具体形式为每两周的周二上午10点。此前议题的收集以邮件列表和钉钉群为主,到达率不高,需要考虑其他更公开方便的途径。 + + +## 遗留问题/跟进任务 +1. 王宝林:调研收集议题的途径 \ No newline at end of file diff --git a/PRODUCT_DOCS/test/test3.md b/PRODUCT_DOCS/test/test3.md new file mode 100644 index 0000000..9123542 --- /dev/null +++ b/PRODUCT_DOCS/test/test3.md @@ -0,0 +1,117 @@ +# Anolis OS Cloud Kernel: datop技术设计细则 +## 概述 +在本文中,我们基于社区DAMON设计用于跟踪实时内存热点数据的工具DATOP, 采用划分内存区域采样的方式,并自适应区域构建技术来获取极低的开销损耗,在此基础上,还增加了numa 仿真功能,用于收集任务跨numa访存情况,为了评估其准确性和低开销能力,我们选取和测试了多个benchmark,并与基线进行比较, 结果表明:DATOP工具运行时开销非常小(保持在不到4%左右),此外开销不受负载大小的影响,仍然保持出色的监控质量,通过多方面测试,我们得出结论:DATOP工具在识别冷热内存以及跨numa访存方面具备优秀的表现能力。 + +## 背景:云计算大规模复杂场景下内存面临的挑战 +云计算领域场景下,海量用户数据的增长,对计算机软件和硬件设计都带来了巨大的挑战,尤其是内存设备如DRAM的速率提升并没有跟上这种高速增长趋势,在数据中心中,海量数据的处理,常常让服务器饱受内存不足之苦。 + +为克服低内存容量,混合内存使用如DRAM搭配PMEM成为未来数据中心的主流方案,但是如何快速识别热点数据并让其准确保持在DRAM中运行是影响性能的关键因素,这就要求系统具备快速识别热点数据的能力,并能动态跟踪捕获热点数据的变化,让其处于高性能的DRAM中,但是不幸的是,现有工具为达到一定的准确度,通常会耗费大量的时间,并引入额外的overhead,造成性能回退。 + +此外服务器硬件架构的快速迭代,cpu核数越来越多,numa节点也越来越多,例如amd服务器numa node数目达到8个,arm服务器飞腾s2500 numa节点达到16个,跨numa节点访存带来的性能影响日益突出,如何低开销高效的识别出跨numa热点数据,并优化之,对于提升系统服务质量,有着重要的意义。 + +## datop:轻量级靶向热点内存扫描工具 +### 热点扫描原理及策略 +在内存领域,对内存进行优化其实依靠预测内存的行为而做的决策,但是能够高效准确的预测内存的走势,其实是非常困难的,此外内存的策略优化对于用户来说,是不透明的,因此现有内存领域的各种策略机制,在实际生产环境中,并未取得很好的效果,也正是基于这些原因,社区推出了一种新的内存调控机制DAMON(Data Access Monitor),它试图让向用户展示内存的动作行为,让用户可根据这些行为相应的调整内存管理策略。 + +### 三大chunks +服务器现有硬件能支持非常巨大的地址空间,内存容量动不动达到几个T的大小,工作负载耗用内存几个G也是很普遍的事,随机毫无规律的划分地址空间可肯定是不可取的,并且在实际使用中,只有小部分区域被实际映射到内存并被访问,DAMON通过分析和论证,先将地址分为三大chunks,这三个chunks区域之间的空隙是给定地址空间中两个最大的未映射区域。 + +图1: +![](../assets/datop1.png) +在大多数情况下,两个最大的未映射区域是堆与最上层mmap() ed区域之间的空隙,以及最下层mmap() ed区域与堆栈之间的空隙, 因为这些间隙在通常的地址空间中是非常大的,排除这些就足够了,所以针对一个工作负载而言,DAMON只需要监控一下这些区域就足够了, 此外,随着工作负载的运行,映射区域发生变化,例如部分最大ummaped区域易主,所以damon设置了一个update周期,去周期性检测这些三大chunks的有效性,重新查找有效的三大chunks,并和现有监测得区域进行对比,删减或者增加。 + +### region拆分与合并 +在获取三大chunks后,damon会按照设定规则,去将这三个chuns划分为不均等的若干分regions, 如下图2所示: + +图2: +![](../assets/datop2.png) + +这些regions后面会随着热点频率去动态调整,进行拆分或者合并操作,其算法原理大致如下: + +拆分原则: + +- 大于等于2倍 DAMON_MIN_REGION才能拆分; +- 拆分region的size不能小于DAMON_MIN_REGION; +- region可以拆分为3个,当regions个数大于max_nr_regions的2/3后,降低拆分个数,由3变2; +- region个数必须保持在min_nr_regions和max_nr_regions范围内; +合并原则: + +- 两合并的regions必须收尾地址相等; +- 两者热点统计值之差必须小于设定阈值范围内; +### region采样与热点统计 +“trace page access bit”技术作为跟踪热点内存通用那就的技术手段,被业界广泛使用,但是该技术有一个固有的缺陷,那就是随着工作负载耗用内存增加,自身带来的开销和跟踪质量都会变糟,而damon通过region划分, 再结合空间采样方式良好的解决了该缺陷:假设一个region中,所有page都有相同的访问模式,这样的话,只需要监控一个page就够了。这样一来,在每个region里面,会随机选择一个page,在bitmap中把它对应的“accessed(访问过)”bit先清零,然后时不时地检查一下,如果这个page被访问过了,那么就算作这个region都被访问过了,它不是监视所有的页面,而是只监视reigon里面随机抽取的一个页面,该页面在某个采样时刻代表着这个region, 并将该值记录下来, 随着采样的不断进行,该region的热点就被统计下来了。 +``` +void check_access(region ∗ r) { + if (!r−>sampled_page) + goto next ; + if (accessed(r−>sampled_page) ) + r−>nr_accesses++; + next: + r−>sampled_page = rand_page(r->sampled_page); + clear_accessed(r−>sampled_page); +} +``` +上述伪代码只是介绍其采样和统计实现方法,其更复杂的逻辑处理关系,例如region合并和拆分后nr_access的值处理,以及nr_access周期性清零等本文不再介绍,有兴趣的读者可以依据damon实现源码自行分析。 + +### numa仿真实现 +社区damon能有有效的识别工作负载内存的冷热情况,但是对于工作负载内存跨numa访存这块,是无法做出判断的, 然而在实际业务中,跨numa访问造成的性能衰退问题真实存在,尤其是现今服务硬件多numa架构numa数目越来越多,正式基于以上原因,我们丰富了damon kernel部分代码,增加了内存numa访存情况。 + +和热点统计一样,numa仿真不会统计region中所有page的跨numa访问情况,而是利用damon空间采样方式,将damon获取的page在clear了access bit后,将其设置为pte none. +``` +void check_numa(region ∗ r) { + if (!r−>sampled_page) + goto next ; + if (local_numa_node(r−>sampled_page) ) + r−>nr_local++; + else + r->nr_remote++; + next: + r−>sampled_page = rand_page(r->sampled_page); + set_page_none(r−>sampled_page); +} +``` + +同样该部分伪代码只是介绍其numa基本实现,在实际中我们需要考虑pte处于swap,和page属于大页的情况,此外在pte设置为none后,会造成再次访问该page时发生page_fault和tlb miss的情况,我们测试发现,在某些频繁访问某块内存的工作负载中,造成一定的性能损耗,所以在实际使用中,我们增加了numa仿真开关,需要的时候去开启该功能。 + +### 小结 +基于上述几小节对damon以及numa仿真在kernel部分的实现机制的介绍,让我们对datop工具的实现原理有了清楚的认识,datop包括内核态部分和用户态部分,用户态可以通过perf调用功能,将内核态通过trace统计的热点信息捕获,并排序显示出来,详细调用流程入下图3显示。 + +图3: +![](../assets/datop3.png) + +在用户态,DATOP通过trace_event、damon dbgfs、以及numa switch接口和内核进行交互: + +蓝色绘制线部分:该部分是和用户态显示的核心, 通过内核kdamond线程将采样统计的相关值传递给trace接口, 用户态通过trace_event方式获取region区域热点信息,包括区域大小,access统计,进程信息以及跨numa统计等,最终通过窗口向用户展示。 + +黑色绘制线部分:该部分用于控制内核态线程kdamond的相关行为,通过damon dbfs接口,用于设置采样频率,更新周期,region个数划分,监控进程配置,kdamond线程的开启和关闭等。 + +绿色绘制线部分用于设定numa仿真功能的开启和关闭,此功能针对支持多numa的场景。 + +红色绘制线部分是热点工具的核心执行单元,用户态通过dbgfs接口开启监控后,kdamond线程被创建, 首先会查找被监控进程的三大chunks, 找到后,按照damon dbgfs接口设定的region个数方范围,对其进行拆分,此后按照设定好的采样频率进入周期性循环工作,直到被监控进程停止运行或用户操作dbgfs接口,停止监控,在周期性循环中,会对region热点进行随机采样并统计,此外还判定用户是否开启numa仿真功能,若开启还会对region跨numa情况进行统计,处理完成后,会更新采样结果,并通过trace event传递给用户,以上操作完成后,会依据kdamond线程运行时间,并在指定周期内,通过热点统计值对region进行拆分和合并操作,此外在更长的周期到来后,还会从新检查chunks的准确性,并按多加少减原则,修改region,以此保证热点内存跟踪的实时性和准确性。 + +至此DATOP技术实现原理介绍完毕,后面会进入介绍使用和数据测试方面的介绍。 + +## 使用 +在龙蜥社区[clouk-kernel](https://gitee.com/anolis/cloud-kernel) 5.10版本内核支持damon代码以及自研的numa仿真部分代码,结合开源的用户态工具[datop工具源码](https://gitee.com/anolis/data-profile-tools.git) 就可以运行起来了,datop工具支持单、多进程以及cgroup粒度内存热点监控以及跨numa访存监控 两种方式,详细使用可以参考源码readme部分。 +此外也可以参考龙蜥社区关于datop介绍的视频[轻量级靶向内存热点扫描工具介绍与入门](https://openanolis.cn/video/528538652696158417) + +目前龙蜥社区已整合datop工具到镜像中,你可以通过[datop rpm anolis a23](https://gitee.com/src-anolis-sig/data-profile-tools/tree/a23/) 在龙蜥社区5.10上构建完成的rpm包,此外也可以通过yum方式对datop工具进行安装。 +``` c +yum install datop +``` + +## 测试说明 +关于测试情况,可以参考先前文档介绍: +[datop测试情况介绍](https://openanolis.cn/sig/Cloud-Kernel/doc/721476494878572689) + +## 参考 +https://sjp38.github.io/post/damon/ +[Memory-management optimization with DAMON](https://lwn.net/Articles/812707/) + +[Using DAMON for proactive reclaim](https://lwn.net/Articles/863753/) + +[DAMON Extended To Offer Physical Memory Address Space Monitoring](https://www.phoronix.com/news/DAMON-Physical-Monitoring) + +[Proactively reclaiming idle memory](https://lwn.net/Articles/787611/) + +[damon用户态工具damo](https://github.com/awslabs/damo) -- Gitee From 34aa12f3139d731c8baa14624910c31b28bb7fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=8B?= <404325854@qq.com> Date: Fri, 28 Jun 2024 14:08:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=93=81docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PRODUCT_DOCS/maintainers.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PRODUCT_DOCS/maintainers.yaml b/PRODUCT_DOCS/maintainers.yaml index 3bcd738..c3905e0 100644 --- a/PRODUCT_DOCS/maintainers.yaml +++ b/PRODUCT_DOCS/maintainers.yaml @@ -7,7 +7,7 @@ maintainers: - openanolis_id: suli0002 gitee_id: suli01 - other_group: &other_group - - openanolis_id: + - openanolis_id: ~ gitee_id: yutting123 # 指定文档目录对应的用户组 paths: -- Gitee