311 lines
6.8 KiB
ReStructuredText
311 lines
6.8 KiB
ReStructuredText
=========================
|
|
drm/amdgpu AMDgpu driver
|
|
=========================
|
|
|
|
The drm/amdgpu driver supports all AMD Radeon GPUs based on the Graphics Core
|
|
Next (GCN) architecture.
|
|
|
|
Module Parameters
|
|
=================
|
|
|
|
The amdgpu driver supports the following module parameters:
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
|
|
|
|
Core Driver Infrastructure
|
|
==========================
|
|
|
|
This section covers core driver infrastructure.
|
|
|
|
.. _amdgpu_memory_domains:
|
|
|
|
Memory Domains
|
|
--------------
|
|
|
|
.. kernel-doc:: include/uapi/drm/amdgpu_drm.h
|
|
:doc: memory domains
|
|
|
|
Buffer Objects
|
|
--------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
|
|
:doc: amdgpu_object
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
|
|
:internal:
|
|
|
|
PRIME Buffer Sharing
|
|
--------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
|
|
:doc: PRIME Buffer Sharing
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
|
|
:internal:
|
|
|
|
MMU Notifier
|
|
------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
|
|
:doc: MMU Notifier
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
|
|
:internal:
|
|
|
|
AMDGPU Virtual Memory
|
|
---------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
|
|
:doc: GPUVM
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
|
|
:internal:
|
|
|
|
Interrupt Handling
|
|
------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
|
|
:doc: Interrupt Handling
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
|
|
:internal:
|
|
|
|
IP Blocks
|
|
------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
|
|
:doc: IP Blocks
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/include/amd_shared.h
|
|
:identifiers: amd_ip_block_type amd_ip_funcs
|
|
|
|
AMDGPU XGMI Support
|
|
===================
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
|
|
:doc: AMDGPU XGMI Support
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
|
|
:internal:
|
|
|
|
AMDGPU RAS Support
|
|
==================
|
|
|
|
The AMDGPU RAS interfaces are exposed via sysfs (for informational queries) and
|
|
debugfs (for error injection).
|
|
|
|
RAS debugfs/sysfs Control and Error Injection Interfaces
|
|
--------------------------------------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:doc: AMDGPU RAS debugfs control interface
|
|
|
|
RAS Reboot Behavior for Unrecoverable Errors
|
|
--------------------------------------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:doc: AMDGPU RAS Reboot Behavior for Unrecoverable Errors
|
|
|
|
RAS Error Count sysfs Interface
|
|
-------------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:doc: AMDGPU RAS sysfs Error Count Interface
|
|
|
|
RAS EEPROM debugfs Interface
|
|
----------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:doc: AMDGPU RAS debugfs EEPROM table reset interface
|
|
|
|
RAS VRAM Bad Pages sysfs Interface
|
|
----------------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:doc: AMDGPU RAS sysfs gpu_vram_bad_pages Interface
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
|
|
:internal:
|
|
|
|
Sample Code
|
|
-----------
|
|
Sample code for testing error injection can be found here:
|
|
https://cgit.freedesktop.org/mesa/drm/tree/tests/amdgpu/ras_tests.c
|
|
|
|
This is part of the libdrm amdgpu unit tests which cover several areas of the GPU.
|
|
There are four sets of tests:
|
|
|
|
RAS Basic Test
|
|
|
|
The test verifies the RAS feature enabled status and makes sure the necessary sysfs and debugfs files
|
|
are present.
|
|
|
|
RAS Query Test
|
|
|
|
This test checks the RAS availability and enablement status for each supported IP block as well as
|
|
the error counts.
|
|
|
|
RAS Inject Test
|
|
|
|
This test injects errors for each IP.
|
|
|
|
RAS Disable Test
|
|
|
|
This test tests disabling of RAS features for each IP block.
|
|
|
|
|
|
GPU Power/Thermal Controls and Monitoring
|
|
=========================================
|
|
|
|
This section covers hwmon and power/thermal controls.
|
|
|
|
HWMON Interfaces
|
|
----------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: hwmon
|
|
|
|
GPU sysfs Power State Interfaces
|
|
--------------------------------
|
|
|
|
GPU power controls are exposed via sysfs files.
|
|
|
|
power_dpm_state
|
|
~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: power_dpm_state
|
|
|
|
power_dpm_force_performance_level
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: power_dpm_force_performance_level
|
|
|
|
pp_table
|
|
~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: pp_table
|
|
|
|
pp_od_clk_voltage
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: pp_od_clk_voltage
|
|
|
|
pp_dpm_*
|
|
~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
|
|
|
|
pp_power_profile_mode
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: pp_power_profile_mode
|
|
|
|
\*_busy_percent
|
|
~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: gpu_busy_percent
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: mem_busy_percent
|
|
|
|
gpu_metrics
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: gpu_metrics
|
|
|
|
GPU Product Information
|
|
=======================
|
|
|
|
Information about the GPU can be obtained on certain cards
|
|
via sysfs
|
|
|
|
product_name
|
|
------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
:doc: product_name
|
|
|
|
product_number
|
|
--------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
:doc: product_name
|
|
|
|
serial_number
|
|
-------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
:doc: serial_number
|
|
|
|
unique_id
|
|
---------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: unique_id
|
|
|
|
GPU Memory Usage Information
|
|
============================
|
|
|
|
Various memory accounting can be accessed via sysfs
|
|
|
|
mem_info_vram_total
|
|
-------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
|
|
:doc: mem_info_vram_total
|
|
|
|
mem_info_vram_used
|
|
------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
|
|
:doc: mem_info_vram_used
|
|
|
|
mem_info_vis_vram_total
|
|
-----------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
|
|
:doc: mem_info_vis_vram_total
|
|
|
|
mem_info_vis_vram_used
|
|
----------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
|
|
:doc: mem_info_vis_vram_used
|
|
|
|
mem_info_gtt_total
|
|
------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
|
|
:doc: mem_info_gtt_total
|
|
|
|
mem_info_gtt_used
|
|
-----------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
|
|
:doc: mem_info_gtt_used
|
|
|
|
PCIe Accounting Information
|
|
===========================
|
|
|
|
pcie_bw
|
|
-------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
|
|
:doc: pcie_bw
|
|
|
|
pcie_replay_count
|
|
-----------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
:doc: pcie_replay_count
|
|
|
|
|