Hardware Event Fields
This reference covers RAS metrics, event structures, severity, and source fields. See Hardware Fault Diagnosis for coverage and enablement.
EventTracing.Ras.MceThrBackoff controls the save interval for threshold-interrupt events. Events are still counted during cooldown, so counter increases need not equal the number of saved records.
Results
Error Counts
huatuo_bamai_ras_hw_err_total counts received RAS events by type: mce, edac, acpi, aer, thr, and arm_ghes. The presence of a label does not prove that the current platform supports its probe.
huatuo_bamai_ras_hw_err_total{hostname="node-01",region="region-01",type="edac"} 12
These are example values. The unit is events, not the sum of EDAC err_count values. See Kernel-Wide Insight for NIC hardware drops and PFC metrics, and Abnormal Event Diagnosis for NIC state changes.
Event Records
Query with tracer_name=ras and tracer_type=event. This EDAC example omits some fields:
{
"hostname": "node-01",
"observed_timestamp": "2026-05-11T08:58:47.329Z",
"kernel_observed_timestamp": "2026-05-11T08:58:47.328548319Z",
"tracer_name": "ras",
"tracer_type": "event",
"tracer_data": {
"dev": "MEM",
"event": "EDAC",
"type": "Corrected",
"info": "{\"err_count\":1,\"err_type\":\"Corrected\",\"err_msg\":\"memory read error\",\"label\":\"CPU_SrcID#0_Ha#0_Chan#0_DIMM#0\",\"mc_index\":0,\"addr\":7860269056,\"grain\":128}"
}
}
| Field | Description |
|---|---|
tracer_data.dev |
Device or component identifier, such as CPU/MEM, MEM, ACPI, or PCIe 0000:03:00.0 |
tracer_data.event |
Error source; see Coverage |
tracer_data.type |
Normalized severity; see below |
tracer_data.info |
JSON string containing details; parse it again. Its structure depends on the event source |
observed_timestamp |
Time when user space receives the event |
kernel_observed_timestamp |
Timestamp converted from kernel observation time |
Severity
Severity classifies the event. It does not establish successful recovery, absence of application impact, or a need to reboot.
type |
Meaning | Current Mapping |
|---|---|---|
Corrected |
Corrected | MCE without UC/DEFERRED flags, EDAC 0, ACPI 1, AER 2, THR |
UncorrectedRecoverable |
Uncorrected, recoverable category | MCE UC, EDAC 1, ACPI 2, AER 0 |
UncorrectedDeferred |
Uncorrected, deferred category | MCE DEFERRED, EDAC 2 |
UncorrectedFatal |
Uncorrected, fatal category | EDAC 3, ACPI 3, AER 1 |
Info |
Informational record | EDAC 4, ACPI 0 |
unknown |
Unmapped severity | Unrecognized raw values or sources without severity |
If MCE sets both DEFERRED and UC, UncorrectedDeferred takes precedence.
Event Details
The following fields are in the parsed tracer_data.info.
MCE
Register and bank meanings depend on the CPU model. Use the corresponding processor manual for diagnosis.
| Field | Description |
|---|---|
mcg_cpu_cap / mcg_msr_status |
Global capability register MCG_CAP and status register MCG_STATUS |
banks_msr_status |
Bank status register MCi_STATUS, including error codes and UC, DEFERRED, ADDRV, and MISCV flags |
banks_msr_addr |
MCi_ADDR error address; interpret only when ADDRV is valid |
banks_msr_misc |
MCi_MISC details; interpret only when MISCV is valid |
mca_synd_msr / mca_ipid_msr |
AMD syndrome and instance ID registers |
instr_pointer / code_seg |
Instruction pointer and code segment; check MCG_STATUS for instruction-pointer validity |
tsc_timestamp |
CPU timestamp counter, not directly usable as a Unix timestamp |
walltime |
Unix timestamp in seconds |
cpu / cpuid / apicid / socketid |
Logical CPU, CPUID, APIC ID, and CPU socket ID |
bank |
Machine Check Bank ID; component mapping is platform-dependent |
cpuvendor |
CPU vendor code recorded by the kernel |
MCE Threshold Interrupts
| Field | Description |
|---|---|
vector |
Interrupt vector |
cpu |
Logical CPU ID |
EDAC
| Field | Description |
|---|---|
err_count |
Error count reported by this event |
err_type / err_msg |
Normalized severity and error description |
label |
Driver-reported memory location label; confirm the physical slot using machine topology |
mc_index |
Memory controller index, starting at 0 |
top_layer / mid_layer / low_layer |
Driver-defined memory topology indexes; -1 means unspecified |
addr |
Error address reported by the kernel |
grain |
Address granularity in bytes |
syndrome |
ECC syndrome value |
driver |
Additional error information from the driver, not necessarily its name |
ACPI GHES
| Field | Description |
|---|---|
severity |
Raw severity value; see the severity table for current mappings |
sec_type |
Error section GUID as a 16-byte hexadecimal string |
fru_id / fru_text |
Replaceable component identifier and description, if supplied by firmware |
data_len |
Reported data length in bytes |
raw_data |
Hex dump; interpret using the platform and vendor format |
Non-standard sections (NVDIMM, CXL, and vendor payloads) can exceed the copied window. raw_data contains only the bytes available after the section offset: the length is capped by the remaining window, so with a valid record length unused bytes at the end are not reported as payload. The window also holds the record’s fixed fields and any data before the section, so it is not a per-record raw_data capacity. data_len still reports the length the kernel put in the record. Both values come from the kernel record and are bounded before use, so a malformed event cannot expose bytes outside the copied window.
PCIe AER
| Field | Description |
|---|---|
dev_name |
PCIe BDF address, such as 0000:03:00.0 (Domain:Bus:Device.Function) |
err_type |
Corrected, UncorrectedRecoverable, UncorrectedFatal, or unknown |
err_reason |
Error name for the AER status value; the parser matches a single status value and uses unknown if unmatched |
tlp_header |
Four hexadecimal words of the TLP header; not available if absent |
Error names describe the reported condition and do not prove device damage. The current parser recognizes the following status values.
Correctable Errors
| Status Value | err_reason |
|---|---|
0x00000001 |
Receiver Error |
0x00000040 |
Bad TLP |
0x00000080 |
Bad DLLP |
0x00000100 |
REPLAY_NUM Rollover |
0x00001000 |
Replay Timer Timeout |
0x00002000 |
Advisory Non-Fatal Error |
0x00004000 |
Corrected Internal Error |
0x00008000 |
Header Log Overflow |
Uncorrectable Errors
| Status Value | err_reason |
|---|---|
0x00000001 |
Undefined |
0x00000010 |
Data Link Protocol Error |
0x00000020 |
Surprise Down Error |
0x00001000 |
Poisoned TLP |
0x00002000 |
Flow Control Protocol Error |
0x00004000 |
Completion Timeout |
0x00008000 |
Completer Abort |
0x00010000 |
Unexpected Completion |
0x00020000 |
Receiver Overflow |
0x00040000 |
Malformed TLP |
0x00080000 |
ECRC Error |
0x00100000 |
Unsupported Request Error |
0x00200000 |
ACS Violation |
0x00400000 |
Uncorrectable Internal Error |
0x00800000 |
MC Blocked TLP |
0x01000000 |
AtomicOp Egress Blocked |
0x02000000 |
TLP Prefix Blocked Error |
ARM GHES
ARM_GHES records use severity unknown. See Coverage for platform limitations.
| Field | Description |
|---|---|
mpidr / midr |
Hexadecimal processor identifiers; mpidr=0x0 may also mean the kernel did not supply a value |
running_state |
running, stopped, or N/A |
psci_state |
Hexadecimal PSCI state when stopped; N/A when inapplicable |
affinity_level |
Decimal affinity level; N/A when unavailable |