AMDGPU DebugFS

amdgpu 驅動程式提供了一些 debugfs 檔案,以幫助除錯驅動程式中的問題。 這些檔案通常位於 /sys/kernel/debug/dri/<num> 中。

DebugFS 檔案

amdgpu_benchmark

使用驅動程式用於 GPU 記憶體分頁的 DMA 引擎執行基準測試。 將一個數字寫入檔案以執行測試。 結果將寫入核心日誌。 VRAM 是裝置記憶體 (dGPU) 或劃分出的記憶體 (APU),而 GTT(圖形轉換表)是 GPU 可訪問的系統記憶體。 提供以下測試

  • 1:簡單測試,VRAM 到 GTT 和 GTT 到 VRAM

  • 2:簡單測試,VRAM 到 VRAM

  • 3:GTT 到 VRAM,緩衝區大小掃描,2 的冪

  • 4:VRAM 到 GTT,緩衝區大小掃描,2 的冪

  • 5:VRAM 到 VRAM,緩衝區大小掃描,2 的冪

  • 6:GTT 到 VRAM,緩衝區大小掃描,常見顯示尺寸

  • 7:VRAM 到 GTT,緩衝區大小掃描,常見顯示尺寸

  • 8:VRAM 到 VRAM,緩衝區大小掃描,常見顯示尺寸

amdgpu_test_ib

讀取此檔案可在所有核心管理的環上執行簡單的 IB(間接緩衝區)測試。 IB 通常是由使用者空間應用程式生成的命令緩衝區,這些緩衝區被提交到核心以便在特定的 GPU 引擎上執行。 這只是執行核心中包含的簡單 IB 測試。 這些測試是特定於引擎的,並驗證 IB 提交是否有效。

amdgpu_discovery

提供對 GPU 提供的 IP 發現二進位制檔案的原始訪問。 讀取此檔案以訪問原始二進位制檔案。 這對於驗證 IP 發現表的內容很有用。 它是晶片特定的。

amdgpu_vbios

提供對 GPU 中 ROM 二進位制映象的原始訪問。 讀取此檔案以訪問原始二進位制檔案。 這對於驗證影片 BIOS ROM 的內容很有用。 它是板特定的。

amdgpu_evict_gtt

從 GTT 記憶體池中逐出所有緩衝區。 讀取此檔案可從該池中逐出所有緩衝區。

amdgpu_evict_vram

從 VRAM 記憶體池中逐出所有緩衝區。 讀取此檔案可從該池中逐出所有緩衝區。

amdgpu_gpu_recover

觸發 GPU 重置。 讀取此檔案可觸發重置整個 GPU。 當前在 GPU 上執行的所有工作都將丟失。

amdgpu_ring_<name>

提供對每個環 <name> 的核心管理的環形緩衝區的讀取訪問。 這些對於除錯特定環上的問題很有用。 環形緩衝區是 CPU 向 GPU 傳送命令的方式。 CPU 將命令寫入緩衝區,然後要求 GPU 引擎處理它。 這是環形緩衝區的原始二進位制內容。 使用像 UMR 這樣的工具將環解碼成人類可讀的形式。

amdgpu_mqd_<name>

提供對核心驅動程式管理的環 <name> 的核心管理的 MQD(記憶體佇列描述符)的讀取訪問。 MQD 定義了環的功能,並在環未連線到硬體時用於儲存環的狀態。 驅動程式將請求的環功能和元資料(環本身和關聯緩衝區的 GPU 地址)寫入 MQD,韌體使用 MQD 在環對映到硬體插槽時填充硬體。 僅在使用 MQD 的引擎上可用。 這提供了對原始 MQD 二進位制檔案的訪問。

amdgpu_error_<name>

提供了一個介面,用於在與環 <name> 關聯的 dma 柵欄上設定錯誤程式碼。 指定的錯誤程式碼會傳播到與環關聯的所有柵欄。 使用此功能可將柵欄錯誤注入到環中。

amdgpu_pm_info

提供有關 GPU 的電源管理功能和狀態的人類可讀的資訊。 這包括當前的 GFX 時鐘、記憶體時鐘、電壓、平均 SoC 功耗、溫度、GFX 負載、記憶體負載、SMU 功能掩碼、VCN 功耗狀態、時鐘和電源門控功能。

amdgpu_firmware_info

列出 GPU 使用的所有韌體的韌體版本。 只有版本不為 0 的條目才有效。 如果版本為 0,則該韌體對 GPU 無效。

amdgpu_fence_info

顯示每個核心驅動程式管理的環的最後發出訊號和發出的柵欄序列號。 柵欄與提交到引擎的操作相關聯。 發出的柵欄已提交到環,發出訊號的柵欄已由 GPU 發出訊號。 具有較大發出柵欄值的環具有仍在由擁有該環的引擎處理的未完成工作。 當發出和發出訊號的柵欄值相等時,環處於空閒狀態。

amdgpu_gem_info

列出使用 GPU 的所有 PID 以及它們已分配的 GPU 緩衝區。 這列出了緩衝區大小、池(VRAM、GTT 等)和緩衝區屬性(需要 CPU 訪問、CPU 快取屬性等)。

amdgpu_vm_info

列出使用 GPU 的所有 PID 以及它們已分配的 GPU 緩衝區,以及這些緩衝區相對於該程序的 GPU 虛擬地址空間的狀態(例如,已逐出、空閒、無效等)。

amdgpu_sa_info

列印核心驅動程式中子分配管理器的所有子分配 (sa)。 列印與每個子分配關聯的 GPU 地址、大小和柵欄資訊。 子分配在核心驅動程式內部用於各種用途。

amdgpu_<pool>_mm

列印有關記憶體池 <pool> 的 TTM 資訊。

amdgpu_vram

提供對 VRAM 的直接訪問。 供 UMR 等工具用於檢查 VRAM 中的物件。

amdgpu_iomem

提供對 GTT 記憶體的直接訪問。 供 UMR 等工具用於檢查 GTT 記憶體。

amdgpu_regs_*

提供對 GPU 上各種暫存器光圈的直接訪問。 供 UMR 等工具用於訪問 GPU 暫存器。

amdgpu_regs2

提供 UMR 用於與 GPU 暫存器互動的 IOCTL 介面。

amdgpu_sensors

提供一個介面,用於查詢 GPU 功率指標(溫度、平均功率等)。 供 UMR 等工具用於查詢 GPU 功率指標。

amdgpu_gca_config

提供一個介面,用於查詢 GPU 詳細資訊(圖形/計算陣列配置、PCI 配置、GPU 系列等)。 供 UMR 等工具用於查詢 GPU 詳細資訊。

amdgpu_wave

用於從硬體查詢 GFX/計算波資訊。 供 UMR 等工具用於查詢 GFX/計算波資訊。

amdgpu_gpr

用於從硬體查詢 GFX/計算 GPR(通用暫存器)資訊。 供 UMR 等工具用於除錯著色器時查詢 GPR。

amdgpu_gprwave

提供 UMR 用於與著色器波互動的 IOCTL 介面。

amdgpu_fw_attestation

提供了一個介面,用於讀取韌體證明記錄。