GPU Operational Event Formats#
Warning
GPU Operational Events are a preview feature and remain under active development. Category values, module signatures, module event codes, severities, context payloads, and the set of published events may change before the interface is declared stable. Treat the identifiers in this document as valid for the driver release documented here, and re-validate consumers against each driver release. Legacy Xid reporting remains supported for production monitoring during the preview period. See Release Notes for compatibility changes.
GPU Operational Events are published in several formats. These describe the same underlying events, but the context data available in each format can differ.
Format |
Typical Consumers |
|---|---|
Structured Event Records |
NVML subscribers |
UEFI CPER |
BMC collection, |
Linux Tracepoints |
Kernel tracing with the open GPU kernel modules |
Legacy Xid Kernel Log Lines |
Existing |
See Analyzing GPU Operational Events for how to monitor events and how to interpret categories and published codes.
Structured Event Records#
Structured records expose the event identity and attribution as discrete fields. Through NVML,
a successful nvmlEventSetWait_v3 returns records whose dataType is
NVML_EVENT_DATA_TYPE_GPU_OPERATIONAL_EVENT. Those records carry:
Module signature, category, and module event code
Severity, log level, scope, and originator
Device UUID and attribution
Trace ID, group cursor, group position, and instance ID
Timestamp and per-event / group attributes
groupSize counts the events visible to the subscriber’s scope, and groupIndex is their
zero-based position within that group.
Context payloads follow the event. Each context has a type, a format version, and a payload size.
Domain-independent types carry generically decodable data:
Type |
Contents |
|---|---|
|
Opaque bytes |
|
Key/value pairs, 64-bit values |
|
Key/value pairs, 32-bit values |
|
Value array, 64-bit values |
|
Value array, 32-bit values |
GPU domain types begin at 0x8001; 0x8000 is reserved. The types defined in this release
are:
Type |
Name |
Contents |
|---|---|---|
|
Legacy Xid |
Legacy Xid code and formatted message |
|
GPU Timeout Data |
Timeout-specific fields such as waited duration |
|
GPU Initialization Metadata |
Driver and device metadata reported at initialization |
|
GSP RPC Timeout Data |
RPC function, name, sequence number, and wait duration |
|
FSP Boot Timeout Data |
FSP boot polling state |
|
FSP Fuse Error Data |
FSP fuse status |
|
NVLink ALI Training Failure Data |
Affected link IDs and debug registers |
|
NVLink MSE Error Data |
MSE error status and debug registers |
|
NVLink Software Link-Down Data |
Link ID and eight unused debug words |
|
NVLink NVL3 Fatal Error Data |
Link ID and seven debug words |
|
NVLink Privilege Error Data |
Link ID |
|
NVLink Blackwell Error Data |
Link ID ( |
|
NVLink SAW Error Data |
64 reserved bytes |
|
NVLink RLW Error Data |
64 reserved bytes |
|
NVLink TLW Error Data |
64 reserved bytes |
|
NVLink TREX Error Data |
64 reserved bytes |
|
NVLink NVLPW Control Error Data |
64 reserved bytes |
|
NVLink NETIR Error Data |
64 reserved bytes |
|
Secure NVLink IR2SAW Interrupt Data |
Secure NVLink error fields |
|
Secure NVLink Cross-Containment Data |
Secure NVLink error fields |
|
Secure NVLink Encryption Error Data |
Secure NVLink error fields |
|
Secure NVLink Remote Hardware Error Data |
Secure NVLink error fields |
|
Secure NVLink Local STO Error Data |
Secure NVLink error fields |
|
Secure NVLink Local Privilege Error Data |
Secure NVLink error fields |
|
Secure NVLink Remote Privilege Error Data |
Secure NVLink error fields |
|
Secure NVLink DMEM Parity Error Data |
Secure NVLink error fields |
|
Secure NVLink IMEM Parity Error Data |
Secure NVLink error fields |
|
Secure NVLink MPU Parity Error Data |
Secure NVLink error fields |
|
Secure NVLink Register Parity Error Data |
Secure NVLink error fields |
|
Secure NVLink Traffic Error Data |
Secure NVLink error fields |
|
Secure NVLink Instruction Cache Parity Error Data |
Secure NVLink error fields |
|
Secure NVLink Data Cache Parity Error Data |
Secure NVLink error fields |
|
PCIe Fatal Timeout Data |
Timeout source and register value |
|
PCIe Correctable Error Fault Data |
Correctable-error rate tuple number, NERD number, and tuple version |
|
PCIe Reset Failure Data |
Reset status and recommended recovery action |
Private contexts use opaque type 0x0000 and do not have a published field layout.
nvidia-smi event-log prints structured events in human-readable form.
Linux Tracepoints#
R620 adds five tracepoints in the nvidia trace system: nvidia_gpu_error,
nvidia_gpu_warning, nvidia_gpu_notice, nvidia_gpu_diagnostic, and
nvidia_gpu_telemetry. The event’s log level selects the tracepoint. These are available with
the open GPU kernel modules.
The raw trace record carries the PCI device, UUID, module signature and event code, category, severity, scope, originator, event and group attributes, log level, trace ID, instance ID, timestamp, and module, chiplet, and MIG attribution. It does not carry contexts or group cursor, size, or index. The formatted trace line shows a subset of those fields.
UEFI CPER#
GPU Operational Events are encoded as UEFI Common Platform Error Records. See
Appendix N of the UEFI Specification
for the CPER format. CPER is the format used for out-of-band delivery to a BMC and for retained
history access through nvmlSystemGetCPER_v1 and nvidia-smi cper.
One CPER record represents one event group. Each event in the group becomes one section of type
NVIDIA Event Section, GUID 9068e568-6ca0-11f0-aeaf-159343591eac. The Creator ID and
Notification Type GUIDs listed below are version-5 GUIDs derived from the NVIDIA namespace
ea219640-18b9-4c91-8e5c-58eeacd9b33f. Match these GUIDs by value.
The NVIDIA Event Section begins with a 32-byte common header, followed by a device-type-specific event info structure, followed by the context list. The event identity maps as follows:
CPER Field |
Source |
Notes |
|---|---|---|
Source Device Type |
|
Selects the event info layout. |
Event Type ( |
Category |
Value from the category registry. |
Event Sub-type ( |
Module Event Code |
Specific event within the reporting module. |
Source Module Signature ( |
Module Signature |
NUL-terminated ASCII string naming the source module. |
Event Trace ID ( |
Trace ID |
Full 64-bit value including the originator prefix. |
Error Record Header |
Group Cursor |
The driver writes the group cursor into |
Event info for the GPU device type is 16 bytes, version 1.0 (0x0100). It adds the event
originator, the device PDI, and source partition and subpartition fields reserved for future use.
Each context has a 16-byte header, version 0.0, and is padded to 16-byte alignment.
contextSize includes the header and padding; dataSize counts only the payload bytes.
CPER uses the same context type registry, but context encoding depends on the reporting path.
Native event serializers encode most module-specific contexts as opaque type 0x0000,
version 0. Legacy Xid and initialization metadata retain their typed encodings (0x8001 and
0xA001, version 1.0). Native PCIe correctable-error serialization emits the event section but
omits its correctable-error and Legacy Xid contexts.
When the host imports a firmware event, CPER preserves the context types and versions from the imported structured record. A module context can therefore be typed on this path and opaque on another. Decode each context using its own header; use structured records for the published module-specific layouts when CPER supplies opaque data.
The Error Record Header identifies the producer through a Creator ID and describes how the condition was discovered through a Notification Type:
Role |
GUID |
Meaning |
|---|---|---|
Creator ID |
|
Record created by the host driver on the physical function. |
Notification Type |
|
Reported through a GPU hardware interrupt. |
Notification Type |
|
Detected by on-device firmware fault handling. |
Notification Type |
|
Inferred from a timeout waiting on GPU hardware or firmware. |
Notification Type |
|
Detected by a software validation or invariant check. |
GOE Severity to CPER Severity Mapping
GOE severity is evaluated at the event’s explicit scope, such as a device or engine. CPER severity uses the UEFI encoding — recoverable (0), fatal (1), corrected (2), informational (3) — and is always evaluated at the host scope. Encoding a GOE as CPER therefore re-scopes the impact to the host, so the CPER severity can differ from the GOE severity.
The driver maps GOE fatal and GOE recoverable to CPER recoverable, GOE corrected to CPER corrected, and GOE informational to CPER informational. GPU-fatal conditions leave the host recoverable, so the driver emits CPER recoverable for them and does not emit CPER fatal. The NVIDIA Event Section carries identity and attribution fields, while GOE severity and scope remain on the structured event record. For GPU-relative impact, read those fields from the structured record; they are not recoverable from the CPER severity alone.
Group attributes map to Error Record Header flags: recovered, previous error, and simulated.
Legacy Xid Kernel Log Lines#
Contexts of type 0x8001 carry a legacy Xid code and its formatted message. These produce the
traditional kernel log line:
NVRM: Xid (PCI:0000:41:00): 63, Row Remapper: New row (0x00000000fbc12000) marked for remapping, reset gpu to activate.
Most events that report an Xid also deliver that code and message as a 0x8001 context inside
structured records and CPER, so a programmatic consumer may read them without parsing dmesg.