← Documents Documentation/gpu/amdgpu/debugfs.rst GitHub 원문 ↗

Linux 6.18.37 · GPU

AMDGPU DebugFS

AMDGPU의 27개 debugfs interface와 side effect, raw access, 상태 판독을 다룬 전문 번역입니다.

Source pathDocumentation/gpu/amdgpu/debugfs.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

debugfs.rst:1-210

`/sys/kernel/debug/dri/<num>` 아래의 27개 AMDGPU debugfs interface를 설명하는 문서입니다. 각 file의 read/write 또는 IOCTL 방식, text/raw binary 출력, memory·ring·power·firmware·shader 진단 목적을 원문 순서대로 번역했습니다.

Debugfs는 안정된 userspace ABI가 아니라 진단용 interface입니다. 특히 read가 IB test, memory eviction, GPU reset을 trigger하는 file과 fence error injection, 직접 VRAM/GTT/register 접근은 운영 workload에 영향을 줄 수 있으므로 의도와 대상 device를 확인해야 합니다.

AMDGPU debugfs side-effect 분류
분류대표 interface핵심 주의점
read가 동작 실행amdgpu_test_ib, amdgpu_evict_gtt, amdgpu_evict_vram, amdgpu_gpu_recovertest, eviction 또는 reset이 즉시 발생
오류 주입amdgpu_error_<name>ring의 DMA fence 전체에 error code 전파
직접 저수준 접근amdgpu_vram, amdgpu_iomem, amdgpu_regs_*, amdgpu_regs2UMR 같은 전용 도구와 정확한 대상 확인 필요
상태 조회amdgpu_pm_info, amdgpu_firmware_info, amdgpu_fence_infotext 결과의 시점과 device instance 확인
raw binaryamdgpu_discovery, amdgpu_vbios, amdgpu_ring_<name>, amdgpu_mqd_<name>parser 또는 decoder 없이 사람이 읽기 어려움

단순 조회와 실행·변경 동작을 구분했습니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ==============
2 AMDGPU DebugFS
3 ==============
4
5 The amdgpu driver provides a number of debugfs files to aid in debugging
6 issues in the driver. These are usually found in
7 /sys/kernel/debug/dri/<num>.
8
9 DebugFS Files
10 =============
11
12 amdgpu_benchmark
13 ----------------
14
15 Run benchmarks using the DMA engine the driver uses for GPU memory paging.
16 Write a number to the file to run the test. The results are written to the
17 kernel log. VRAM is on device memory (dGPUs) or carve out (APUs) and GTT
18 (Graphics Translation Tables) is system memory that is accessible by the GPU.
19 The following tests are available:
20
21 - 1: simple test, VRAM to GTT and GTT to VRAM
22 - 2: simple test, VRAM to VRAM
23 - 3: GTT to VRAM, buffer size sweep, powers of 2
24 - 4: VRAM to GTT, buffer size sweep, powers of 2
25 - 5: VRAM to VRAM, buffer size sweep, powers of 2
26 - 6: GTT to VRAM, buffer size sweep, common display sizes
27 - 7: VRAM to GTT, buffer size sweep, common display sizes
28 - 8: VRAM to VRAM, buffer size sweep, common display sizes
29
30 amdgpu_test_ib
31 --------------
32
33 Read this file to run simple IB (Indirect Buffer) tests on all kernel managed
34 rings. IBs are command buffers usually generated by userspace applications
35 which are submitted to the kernel for execution on an particular GPU engine.
36 This just runs the simple IB tests included in the kernel. These tests
37 are engine specific and verify that IB submission works.
38
39 amdgpu_discovery
40 ----------------
41
42 Provides raw access to the IP discovery binary provided by the GPU. Read this
43 file to access the raw binary. This is useful for verifying the contents of
44 the IP discovery table. It is chip specific.
45
46 amdgpu_vbios
47 ------------
48
49 Provides raw access to the ROM binary image from the GPU. Read this file to
50 access the raw binary. This is useful for verifying the contents of the
51 video BIOS ROM. It is board specific.
52
53 amdgpu_evict_gtt
54 ----------------
55
56 Evict all buffers from the GTT memory pool. Read this file to evict all
57 buffers from this pool.
58
59 amdgpu_evict_vram
60 -----------------
61
62 Evict all buffers from the VRAM memory pool. Read this file to evict all
63 buffers from this pool.
64
65 amdgpu_gpu_recover
66 ------------------
67
68 Trigger a GPU reset. Read this file to trigger reset the entire GPU.
69 All work currently running on the GPU will be lost.
70
71 amdgpu_ring_<name>
72 ------------------
73
74 Provides read access to the kernel managed ring buffers for each ring <name>.
75 These are useful for debugging problems on a particular ring. The ring buffer
76 is how the CPU sends commands to the GPU. The CPU writes commands into the
77 buffer and then asks the GPU engine to process it. This is the raw binary
78 contents of the ring buffer. Use a tool like UMR to decode the rings into human
79 readable form.
80
81 amdgpu_mqd_<name>
82 -----------------
83
84 Provides read access to the kernel managed MQD (Memory Queue Descriptor) for
85 ring <name> managed by the kernel driver. MQDs define the features of the ring
86 and are used to store the ring's state when it is not connected to hardware.
87 The driver writes the requested ring features and metadata (GPU addresses of
88 the ring itself and associated buffers) to the MQD and the firmware uses the MQD
89 to populate the hardware when the ring is mapped to a hardware slot. Only
90 available on engines which use MQDs. This provides access to the raw MQD
91 binary.
92
93 amdgpu_error_<name>
94 -------------------
95
96 Provides an interface to set an error code on the dma fences associated with
97 ring <name>. The error code specified is propagated to all fences associated
98 with the ring. Use this to inject a fence error into a ring.
99
100 amdgpu_pm_info
101 --------------
102
103 Provides human readable information about the power management features
104 and state of the GPU. This includes current GFX clock, Memory clock,
105 voltages, average SoC power, temperature, GFX load, Memory load, SMU
106 feature mask, VCN power state, clock and power gating features.
107
108 amdgpu_firmware_info
109 --------------------
110
111 Lists the firmware versions for all firmwares used by the GPU. Only
112 entries with a non-0 version are valid. If the version is 0, the firmware
113 is not valid for the GPU.
114
115 amdgpu_fence_info
116 -----------------
117
118 Shows the last signalled and emitted fence sequence numbers for each
119 kernel driver managed ring. Fences are associated with submissions
120 to the engine. Emitted fences have been submitted to the ring
121 and signalled fences have been signalled by the GPU. Rings with a
122 larger emitted fence value have outstanding work that is still being
123 processed by the engine that owns that ring. When the emitted and
124 signalled fence values are equal, the ring is idle.
125
126 amdgpu_gem_info
127 ---------------
128
129 Lists all of the PIDs using the GPU and the GPU buffers that they have
130 allocated. This lists the buffer size, pool (VRAM, GTT, etc.), and buffer
131 attributes (CPU access required, CPU cache attributes, etc.).
132
133 amdgpu_vm_info
134 --------------
135
136 Lists all of the PIDs using the GPU and the GPU buffers that they have
137 allocated as well as the status of those buffers relative to that process'
138 GPU virtual address space (e.g., evicted, idle, invalidated, etc.).
139
140 amdgpu_sa_info
141 --------------
142
143 Prints out all of the suballocations (sa) by the suballocation manager in the
144 kernel driver. Prints the GPU address, size, and fence info associated
145 with each suballocation. The suballocations are used internally within
146 the kernel driver for various things.
147
148 amdgpu_<pool>_mm
149 ----------------
150
151 Prints TTM information about the memory pool <pool>.
152
153 amdgpu_vram
154 -----------
155
156 Provides direct access to VRAM. Used by tools like UMR to inspect
157 objects in VRAM.
158
159 amdgpu_iomem
160 ------------
161
162 Provides direct access to GTT memory. Used by tools like UMR to inspect
163 GTT memory.
164
165 amdgpu_regs_*
166 -------------
167
168 Provides direct access to various register apertures on the GPU. Used
169 by tools like UMR to access GPU registers.
170
171 amdgpu_regs2
172 ------------
173
174 Provides an IOCTL interface used by UMR for interacting with GPU registers.
175
176
177 amdgpu_sensors
178 --------------
179
180 Provides an interface to query GPU power metrics (temperature, average
181 power, etc.). Used by tools like UMR to query GPU power metrics.
182
183
184 amdgpu_gca_config
185 -----------------
186
187 Provides an interface to query GPU details (Graphics/Compute Array config,
188 PCI config, GPU family, etc.). Used by tools like UMR to query GPU details.
189
190 amdgpu_wave
191 -----------
192
193 Used to query GFX/compute wave information from the hardware. Used by tools
194 like UMR to query GFX/compute wave information.
195
196 amdgpu_gpr
197 ----------
198
199 Used to query GFX/compute GPR (General Purpose Register) information from the
200 hardware. Used by tools like UMR to query GPRs when debugging shaders.
201
202 amdgpu_gprwave
203 --------------
204
205 Provides an IOCTL interface used by UMR for interacting with shader waves.
206
207 amdgpu_fw_attestation
208 ---------------------
209
210 Provides an interface for reading back firmware attestation records.
211

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

위치와 DMA memory benchmark

1-29

AMDGPU driver는 driver 문제를 진단하기 위한 debugfs file들을 제공하며 일반적으로 `/sys/kernel/debug/dri/<num>` 아래에 있습니다. `<num>`은 DRM device instance를 뜻하므로 실제 장치 번호를 확인해 경로를 선택해야 합니다.

`amdgpu_benchmark`는 읽기용 상태 파일이 아니라 test 번호를 write해 DMA benchmark를 실행하는 제어 interface입니다. 결과는 이 파일이 아니라 kernel log에 기록됩니다.

AMDGPU debugfs 1: benchmark
debugfs file동작 방식목적·출력과 주의점
amdgpu_benchmark숫자 1~8 중 하나를 writeGPU memory paging에 사용하는 DMA engine으로 benchmark를 실행하고 결과를 kernel log에 기록합니다. VRAM은 dGPU device memory 또는 APU carve-out이고, GTT는 GPU가 접근할 수 있는 system memory입니다.

문서 첫 interface의 동작과 출력 위치입니다.

amdgpu_benchmark test matrix
전송 방향test 방식
1VRAM → GTT 및 GTT → VRAM단순 전송 test
2VRAM → VRAM단순 전송 test
3GTT → VRAM2의 거듭제곱 buffer size sweep
4VRAM → GTT2의 거듭제곱 buffer size sweep
5VRAM → VRAM2의 거듭제곱 buffer size sweep
6GTT → VRAM일반적인 display size buffer sweep
7VRAM → GTT일반적인 display size buffer sweep
8VRAM → VRAM일반적인 display size buffer sweep

write할 번호 1~8과 memory direction, buffer-size pattern을 보존했습니다.

==============
AMDGPU DebugFS
==============

The amdgpu driver provides a number of debugfs files to aid in debugging
issues in the driver.  These are usually found in
/sys/kernel/debug/dri/<num>.

DebugFS Files
=============

amdgpu_benchmark
----------------

Run benchmarks using the DMA engine the driver uses for GPU memory paging.
Write a number to the file to run the test.  The results are written to the
kernel log.  VRAM is on device memory (dGPUs) or carve out (APUs) and GTT
(Graphics Translation Tables) is system memory that is accessible by the GPU.
The following tests are available:

- 1: simple test, VRAM to GTT and GTT to VRAM
- 2: simple test, VRAM to VRAM
- 3: GTT to VRAM, buffer size sweep, powers of 2
- 4: VRAM to GTT, buffer size sweep, powers of 2
- 5: VRAM to VRAM, buffer size sweep, powers of 2
- 6: GTT to VRAM, buffer size sweep, common display sizes
- 7: VRAM to GTT, buffer size sweep, common display sizes
- 8: VRAM to VRAM, buffer size sweep, common display sizes

IB test, raw binary와 파괴적 동작

30-69

이 구간에는 read가 단순 조회인 raw binary interface와 read 자체가 test·eviction·reset을 실행하는 interface가 함께 있습니다. 이름만 보고 `cat`하면 동작이 발생할 수 있으므로 `amdgpu_test_ib`, `amdgpu_evict_*`, `amdgpu_gpu_recover`의 side effect를 먼저 확인해야 합니다.

`amdgpu_discovery`는 chip-specific IP discovery binary이고 `amdgpu_vbios`는 board-specific ROM image입니다. 둘 다 사람이 읽는 text가 아니라 원시 binary이므로 적절한 parser나 비교 도구를 사용해야 합니다.

AMDGPU debugfs 2: test, binary와 reset
debugfs file동작 방식목적·출력과 주의점
amdgpu_test_ibread하면 test 실행커널이 관리하는 모든 ring에서 engine별 단순 IB(Indirect Buffer) test를 실행해 IB submission이 동작하는지 검증합니다. IB는 userspace application이 만들고 특정 GPU engine에서 실행하도록 kernel에 제출하는 command buffer입니다.
amdgpu_discoveryraw binary readGPU가 제공하는 chip-specific IP discovery binary에 직접 접근합니다. IP discovery table의 실제 내용을 검증할 때 사용합니다.
amdgpu_vbiosraw binary readGPU ROM의 board-specific video BIOS binary image에 직접 접근해 VBIOS ROM 내용을 검증합니다.
amdgpu_evict_gttread하면 eviction 실행GTT memory pool의 모든 buffer를 evict합니다. 상태 조회가 아니라 pool 전체에 영향을 주는 동작입니다.
amdgpu_evict_vramread하면 eviction 실행VRAM memory pool의 모든 buffer를 evict합니다. 상태 조회가 아니라 pool 전체에 영향을 주는 동작입니다.
amdgpu_gpu_recoverread하면 GPU reset 실행GPU 전체 reset을 trigger합니다. 현재 GPU에서 실행 중인 모든 work가 손실되므로 진단 환경에서 의도적으로 사용해야 합니다.

amdgpu_test_ib부터 amdgpu_gpu_recover까지 6개 interface입니다.

amdgpu_test_ib
--------------

Read this file to run simple IB (Indirect Buffer) tests on all kernel managed
rings.  IBs are command buffers usually generated by userspace applications
which are submitted to the kernel for execution on an particular GPU engine.
This just runs the simple IB tests included in the kernel.  These tests
are engine specific and verify that IB submission works.

amdgpu_discovery
----------------

Provides raw access to the IP discovery binary provided by the GPU.  Read this
file to access the raw binary.  This is useful for verifying the contents of
the IP discovery table.  It is chip specific.

amdgpu_vbios
------------

Provides raw access to the ROM binary image from the GPU.  Read this file to
access the raw binary.  This is useful for verifying the contents of the
video BIOS ROM.  It is board specific.

amdgpu_evict_gtt
----------------

Evict all buffers from the GTT memory pool.  Read this file to evict all
buffers from this pool.

amdgpu_evict_vram
-----------------

Evict all buffers from the VRAM memory pool.  Read this file to evict all
buffers from this pool.

amdgpu_gpu_recover
------------------

Trigger a GPU reset.  Read this file to trigger reset the entire GPU.
All work currently running  on the GPU will be lost.

Ring buffer, MQD와 fence error injection

70-99

Ring buffer는 CPU가 GPU로 command를 전달하는 경로입니다. CPU가 command를 buffer에 기록하고 GPU engine에 처리를 요청합니다. `amdgpu_ring_<name>`은 raw binary이므로 UMR 같은 decoder가 있어야 사람이 읽기 쉬운 형태로 해석할 수 있습니다.

MQD는 ring의 기능과 metadata를 firmware에 전달하고, ring이 hardware slot에 연결되지 않았을 때 state를 보관합니다. Firmware는 ring을 slot에 map할 때 MQD로 hardware를 채웁니다. `amdgpu_error_<name>`은 이 실행 경로의 fence에 의도적으로 오류를 주입합니다.

AMDGPU debugfs 3: ring, MQD와 error
debugfs file동작 방식목적·출력과 주의점
amdgpu_ring_<name>raw binary readkernel-managed ring `<name>`의 ring buffer 원문을 제공합니다. CPU가 command를 써서 GPU engine에 처리를 요청하는 buffer이며, 사람이 읽으려면 UMR 같은 도구로 decode해야 합니다.
amdgpu_mqd_<name>raw binary readring `<name>`의 MQD(Memory Queue Descriptor)를 제공합니다. MQD는 ring 기능, ring 및 연관 buffer의 GPU address 같은 metadata, hardware에서 분리됐을 때의 ring state를 저장합니다. MQD를 사용하는 engine에서만 제공됩니다.
amdgpu_error_<name>error code 설정ring `<name>`에 연결된 DMA fence 모두에 지정한 error code를 전파해 fence error를 주입합니다. 정상 조회가 아니라 오류 처리 경로 시험용 interface입니다.

이름의 `<name>`은 대상 kernel-managed ring을 뜻합니다.

AMDGPU ring과 MQD 실행 관계
CPU가 command를 ring buffer에 기록MQD가 ring feature, GPU address, associated buffer metadata와 state를 보관firmware가 MQD를 사용해 hardware slot을 구성GPU engine이 ring command를 처리하고 fence를 signal

원문의 command 전달과 hardware mapping 관계를 구조화했습니다.


amdgpu_ring_<name>
------------------

Provides read access to the kernel managed ring buffers for each ring <name>.
These are useful for debugging problems on a particular ring.  The ring buffer
is how the CPU sends commands to the GPU.  The CPU writes commands into the
buffer and then asks the GPU engine to process it.  This is the raw binary
contents of the ring buffer.  Use a tool like UMR to decode the rings into human
readable form.

amdgpu_mqd_<name>
-----------------

Provides read access to the kernel managed MQD (Memory Queue Descriptor) for
ring <name> managed by the kernel driver.  MQDs define the features of the ring
and are used to store the ring's state when it is not connected to hardware.
The driver writes the requested ring features and metadata (GPU addresses of
the ring itself and associated buffers) to the MQD and the firmware uses the MQD
to populate the hardware when the ring is mapped to a hardware slot.  Only
available on engines which use MQDs.  This provides access to the raw MQD
binary.

amdgpu_error_<name>
-------------------

Provides an interface to set an error code on the dma fences associated with
ring <name>.  The error code specified is propagated to all fences associated
with the ring.  Use this to inject a fence error into a ring.

Power, firmware, fence, GEM과 GPUVM 상태

100-138

이 구간의 file들은 사람이 읽을 수 있는 진단 정보를 제공합니다. `amdgpu_pm_info`는 전력·clock·load 상태, `amdgpu_firmware_info`는 firmware version 유효성, `amdgpu_fence_info`는 ring 진행 상태를 보여 줍니다.

`amdgpu_gem_info`는 process별 buffer allocation과 속성을, `amdgpu_vm_info`는 그 buffer가 process GPU virtual address space에서 어떤 상태인지 보여 줍니다. 같은 PID와 buffer라도 allocation 정보와 mapping 상태라는 관점이 다릅니다.

AMDGPU debugfs 4: 상태와 process memory
debugfs file동작 방식목적·출력과 주의점
amdgpu_pm_infohuman-readable read현재 GFX clock, memory clock, voltage, 평균 SoC power, temperature, GFX/memory load, SMU feature mask, VCN power state, clock/power gating 기능 등 GPU 전력 관리 상태를 표시합니다.
amdgpu_firmware_infohuman-readable readGPU가 사용하는 모든 firmware version을 나열합니다. version이 0이 아닌 entry만 유효하며, 0이면 해당 GPU에 유효한 firmware가 아닙니다.
amdgpu_fence_infohuman-readable readkernel-managed ring별 마지막 emitted fence와 signalled fence sequence number를 표시합니다. emitted가 더 크면 engine에 미완료 work가 있고 두 값이 같으면 ring은 idle입니다.
amdgpu_gem_infohuman-readable readGPU를 사용하는 PID와 각 process가 할당한 GPU buffer를 나열합니다. buffer size, VRAM/GTT 등의 pool, CPU access 필요 여부와 CPU cache attribute 같은 속성을 포함합니다.
amdgpu_vm_infohuman-readable readGPU를 사용하는 PID, 할당 buffer, process의 GPU virtual address space에 대한 buffer 상태를 표시합니다. 예로 evicted, idle, invalidated 상태가 있습니다.

amdgpu_pm_info부터 amdgpu_vm_info까지 5개 interface입니다.

Fence sequence로 ring 상태 판독
submission에 대응하는 fence를 ring에 emitGPU가 work를 끝내면 fence를 signalemitted > signalled이면 outstanding work 존재emitted == signalled이면 ring idle

emitted와 signalled sequence number의 관계입니다.

amdgpu_pm_info
--------------

Provides human readable information about the power management features
and state of the GPU.  This includes current GFX clock, Memory clock,
voltages, average SoC power, temperature, GFX load, Memory load, SMU
feature mask, VCN power state, clock and power gating features.

amdgpu_firmware_info
--------------------

Lists the firmware versions for all firmwares used by the GPU.  Only
entries with a non-0 version are valid.  If the version is 0, the firmware
is not valid for the GPU.

amdgpu_fence_info
-----------------

Shows the last signalled and emitted fence sequence numbers for each
kernel driver managed ring.  Fences are associated with submissions
to the engine.  Emitted fences have been submitted to the ring
and signalled fences have been signalled by the GPU.  Rings with a
larger emitted fence value have outstanding work that is still being
processed by the engine that owns that ring.  When the emitted and
signalled fence values are equal, the ring is idle.

amdgpu_gem_info
---------------

Lists all of the PIDs using the GPU and the GPU buffers that they have
allocated.  This lists the buffer size, pool (VRAM, GTT, etc.), and buffer
attributes (CPU access required, CPU cache attributes, etc.).

amdgpu_vm_info
--------------

Lists all of the PIDs using the GPU and the GPU buffers that they have
allocated as well as the status of those buffers relative to that process'
GPU virtual address space (e.g., evicted, idle, invalidated, etc.).

Suballocation, TTM과 직접 memory/register 접근

139-176

`amdgpu_sa_info`와 `amdgpu_<pool>_mm`은 각각 driver 내부 suballocation과 TTM memory-pool 정보를 text로 보여 줍니다. 반면 `amdgpu_vram`, `amdgpu_iomem`, `amdgpu_regs_*`는 memory나 register aperture에 직접 접근하는 저수준 interface입니다.

직접 접근 file과 `amdgpu_regs2` IOCTL은 일반 상태 조회보다 위험도와 해석 난도가 높습니다. 원문은 UMR이 VRAM object, GTT memory, GPU register를 검사할 때 이 interface들을 사용한다고 설명합니다.

AMDGPU debugfs 5: memory와 register
debugfs file동작 방식목적·출력과 주의점
amdgpu_sa_infohuman-readable readkernel driver의 suballocation manager가 관리하는 모든 suballocation을 출력합니다. 각 항목의 GPU address, size, 연관 fence 정보를 포함하며 이 suballocation은 driver 내부 용도로 사용됩니다.
amdgpu_<pool>_mmhuman-readable read지정한 memory pool `<pool>`의 TTM 정보를 출력합니다.
amdgpu_vramVRAM 직접 접근VRAM에 직접 접근하는 interface입니다. UMR 같은 도구가 VRAM object를 검사할 때 사용합니다.
amdgpu_iomemGTT memory 직접 접근GTT memory에 직접 접근하는 interface입니다. UMR 같은 도구가 GTT memory를 검사할 때 사용합니다.
amdgpu_regs_*register aperture 직접 접근GPU의 여러 register aperture에 직접 접근합니다. UMR 같은 도구가 GPU register를 읽거나 다룰 때 사용합니다.
amdgpu_regs2IOCTL interfaceUMR이 GPU register와 상호 작용할 때 사용하는 IOCTL interface를 제공합니다.

amdgpu_sa_info부터 amdgpu_regs2까지 6개 interface입니다.


amdgpu_sa_info
--------------

Prints out all of the suballocations (sa) by the suballocation manager in the
kernel driver.  Prints the GPU address, size, and fence info associated
with each suballocation.  The suballocations are used internally within
the kernel driver for various things.

amdgpu_<pool>_mm
----------------

Prints TTM information about the memory pool <pool>.

amdgpu_vram
-----------

Provides direct access to VRAM.  Used by tools like UMR to inspect
objects in VRAM.

amdgpu_iomem
------------

Provides direct access to GTT memory.  Used by tools like UMR to inspect
GTT memory.

amdgpu_regs_*
-------------

Provides direct access to various register apertures on the GPU.  Used
by tools like UMR to access GPU registers.

amdgpu_regs2
------------

Provides an IOCTL interface used by UMR for interacting with GPU registers.

UMR query, shader wave와 firmware attestation

177-210

마지막 구간은 UMR 같은 진단 도구가 power metric, GPU configuration, hardware wave, GPR, shader wave를 조사하는 interface를 설명합니다. `amdgpu_wave`와 `amdgpu_gpr`은 hardware 정보를 query하고, `amdgpu_gprwave`는 shader wave 상호 작용용 IOCTL을 제공합니다.

`amdgpu_fw_attestation`은 firmware attestation record를 읽어 오는 별도 interface입니다. Sensor나 shader 진단 정보와 목적이 다르므로 firmware 신뢰성 검증 자료로 구분해야 합니다.

AMDGPU debugfs 6: UMR query와 attestation
debugfs file동작 방식목적·출력과 주의점
amdgpu_sensorspower metric querytemperature, average power 같은 GPU power metric 조회 interface입니다. UMR 같은 도구가 사용합니다.
amdgpu_gca_configGPU detail queryGraphics/Compute Array configuration, PCI configuration, GPU family 같은 GPU 세부 정보를 조회합니다. UMR 같은 도구가 사용합니다.
amdgpu_wavehardware wave queryhardware에서 GFX/compute wave 정보를 조회합니다. UMR 같은 도구가 shader 실행을 분석할 때 사용합니다.
amdgpu_gprhardware GPR queryhardware의 GFX/compute GPR(General Purpose Register) 정보를 조회합니다. UMR이 shader debugging 중 GPR을 조사할 때 사용합니다.
amdgpu_gprwaveIOCTL interfaceUMR이 shader wave와 상호 작용할 때 사용하는 IOCTL interface를 제공합니다.
amdgpu_fw_attestationattestation record readfirmware attestation record를 읽어 오는 interface입니다.

amdgpu_sensors부터 amdgpu_fw_attestation까지 6개 interface입니다.

amdgpu_sensors
--------------

Provides an interface to query GPU power metrics (temperature, average
power, etc.).  Used by tools like UMR to query GPU power metrics.


amdgpu_gca_config
-----------------

Provides an interface to query GPU details (Graphics/Compute Array config,
PCI config, GPU family, etc.).  Used by tools like UMR to query GPU details.

amdgpu_wave
-----------

Used to query GFX/compute wave information from the hardware.  Used by tools
like UMR to query GFX/compute wave information.

amdgpu_gpr
----------

Used to query GFX/compute GPR (General Purpose Register) information from the
hardware.  Used by tools like UMR to query GPRs when debugging shaders.

amdgpu_gprwave
--------------

Provides an IOCTL interface used by UMR for interacting with shader waves.

amdgpu_fw_attestation
---------------------

Provides an interface for reading back firmware attestation records.