intel_reg_dumper
Dump Intel GPU registers for debugging
SYNOPSIS
intel_reg_dumper [OPTIONS]
PARAMETERS
-r
Dump registers within a specified address range (e.g., 0x40000:0x4ffff). If only
-p
Specify the PCI ID of the Intel GPU to dump (e.g., 0x8086:0x1234). Useful in systems with multiple GPUs.
-s
Suppress the output header, providing only the register values. Useful for scripting and parsing.
-f
Output the dumped register data to the specified file instead of standard output.
-d
Specify the DRM device node to use (e.g., /dev/dri/card0). By default, it tries to find the first available Intel GPU.
--help
Display a brief help message and exit.
--version
Display the version information of the utility and exit.
DESCRIPTION
intel_reg_dumper is a utility from the intel-gpu-tools suite designed for low-level debugging and analysis of Intel Graphics Processing Units (GPUs). It allows users, typically developers or advanced system administrators, to dump the contents of various hardware registers within the Intel GPU.
These registers control fundamental aspects of the GPU's operation, including display outputs, memory access, command processing, and power management. By examining the values of these registers, one can diagnose issues related to graphics display, mode setting failures, hangs, or performance anomalies.
The tool interacts directly with the GPU hardware via the Direct Rendering Manager (DRM) subsystem, requiring elevated privileges (root or appropriate capabilities). It is an invaluable resource for understanding the GPU's current state and for developing or debugging Intel graphics drivers.
CAVEATS
Root Privileges Required: intel_reg_dumper accesses low-level hardware registers, typically requiring root privileges or appropriate CAP_SYS_ADMIN capabilities to interact with the DRM device nodes.
Intel GPUs Only: This tool is specifically designed for Intel Graphics Processing Units and will not function with GPUs from other vendors (e.g., NVIDIA, AMD).
Register Knowledge: Interpreting the dumped register values requires a deep understanding of Intel GPU architecture and register definitions, usually found in Intel's public documentation or driver source code.
UNDERSTANDING REGISTER ADDRESSES
Intel GPU register addresses are typically 32-bit or 64-bit hexadecimal values. The addresses correspond to specific locations within the GPU's memory-mapped I/O (MMIO) space. Different families of Intel GPUs (e.g., Gen9, Gen11, Xe) may have variations in their register sets and interpretations, making precise documentation crucial.
USAGE IN DEBUGGING
This command is frequently used by graphics driver developers to capture the GPU state at the moment of a crash or hang. By dumping registers before and after a problematic operation, developers can pinpoint unexpected changes or incorrect configurations, helping to identify the root cause of complex graphics issues.
HISTORY
The intel_reg_dumper utility is part of the intel-gpu-tools project, a collection of open-source tools developed primarily by Intel and community members to aid in the development, debugging, and analysis of the Intel Graphics driver (i915) and hardware. Its development has closely tracked the evolution of Intel GPU architectures and the Linux DRM subsystem. It provides a crucial capability for understanding the low-level state of Intel GPUs, essential for troubleshooting complex graphics issues and developing new driver functionalities.