Skip to content

Latest commit

 

History

History
122 lines (84 loc) · 3.26 KB

File metadata and controls

122 lines (84 loc) · 3.26 KB

GPU Power/Thermal Controls and Monitoring

HWMON Interfaces

drivers/gpu/drm/amd/pm/amdgpu_pm.c

GPU sysfs Power State Interfaces

GPU power controls are exposed via sysfs files.

power_dpm_state

drivers/gpu/drm/amd/pm/amdgpu_pm.c

power_dpm_force_performance_level

drivers/gpu/drm/amd/pm/amdgpu_pm.c

pp_table

drivers/gpu/drm/amd/pm/amdgpu_pm.c

pp_od_clk_voltage

drivers/gpu/drm/amd/pm/amdgpu_pm.c

drivers/gpu/drm/amd/pm/amdgpu_pm.c

pp_power_profile_mode

drivers/gpu/drm/amd/pm/amdgpu_pm.c

*_busy_percent

drivers/gpu/drm/amd/pm/amdgpu_pm.c

drivers/gpu/drm/amd/pm/amdgpu_pm.c

gpu_metrics

drivers/gpu/drm/amd/pm/amdgpu_pm.c

GFXOFF

GFXOFF is a feature found in most recent GPUs that saves power at runtime. The card's RLC (RunList Controller) firmware powers off the gfx engine dynamically when there is no workload on gfx or compute pipes. GFXOFF is on by default on supported GPUs.

Userspace can interact with GFXOFF through a debugfs interface (all values in uint32_t, unless otherwise noted):

amdgpu_gfxoff

Use it to enable/disable GFXOFF, and to check if it's current enabled/disabled:

$ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
01
  • Write 0 to disable it, and 1 to enable it.
  • Read 0 means it's disabled, 1 it's enabled.

If it's enabled, that means that the GPU is free to enter into GFXOFF mode as needed. Disabled means that it will never enter GFXOFF mode.

amdgpu_gfxoff_status

Read it to check current GFXOFF's status of a GPU:

$ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status
02
  • 0: GPU is in GFXOFF state, the gfx engine is powered down.
  • 1: Transition out of GFXOFF state
  • 2: Not in GFXOFF state
  • 3: Transition into GFXOFF state

If GFXOFF is enabled, the value will be transitioning around [0, 3], always getting into 0 when possible. When it's disabled, it's always at 2. Returns -EINVAL if it's not supported.

amdgpu_gfxoff_count

Read it to get the total GFXOFF entry count at the time of query since system power-up. The value is an uint64_t type, however, due to firmware limitations, it can currently overflow as an uint32_t. Only supported in vangogh

amdgpu_gfxoff_residency

Write 1 to amdgpu_gfxoff_residency to start logging, and 0 to stop. Read it to get average GFXOFF residency % multiplied by 100 during the last logging interval. E.g. a value of 7854 means 78.54% of the time in the last logging interval the GPU was in GFXOFF mode. Only supported in vangogh