You are not logged in.
Pages: 1
My gpu fails to adjust clock according to demand.
I tried to echo ‘low’, ‘high’ and ‘auto’ into /sys/class/drm/card1/device/power_dpm_force_performance_level
With ‘low’: the gpu clock is 300 MHz regardless the demand. This is expected.
With ‘high’: the gpu clock is 800 MHz regardless the demand. This is expected.
With ‘auto’: the gpu clock is whatever MHz was active previously, regardless of demand. This is unexpected; I would expect the clock to change according to demand.
Further note is that after a fresh system restart with the default ‘auto‘ setting the gpu clock changes according to demand as expected. However, after *some number of system-to-ram/resume cycles*, the gpu clock stucks.
The system is up to date. I run the amdgpu driver. I have these kernel parameters: radeon.si_support=0 amdgpu.si_support=1
Any hints to sort this would be appreciated. Further info below.
Kernel: 6.7.4-arch1-1 arch: x86_64 bits: 64 Desktop: Xfce v: 4.18.1 Distro: Arch Linux
Graphics:
Device-1: AMD Pitcairn LE GL [FirePro W5000] vendor: Dell driver: amdgpu
v: kernel arch: GCN-1 bus-ID: 03:00.0 temp: 48.0 C
Display: x11 server: X.Org v: 21.1.11 driver: X: loaded: amdgpu
unloaded: modesetting dri: radeonsi gpu: amdgpu resolution: 1: 1600x1200~60Hz
2: 3840x2160
API: EGL v: 1.5 drivers: radeonsi,swrast platforms:
active: x11,surfaceless,device inactive: gbm,wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.3.5-arch1.1
glx-v: 1.4 direct-render: yes renderer: ATI FirePro W5000 (radeonsi pitcairn
LLVM 16.0.6 DRM 3.57 6.7.4-arch1-1)
API: Vulkan v: 1.3.276 drivers: radv surfaces: xcb,xlib devices: 1
Offline
Hello, sorry to necro an old post but I was curious as to whether you ever figured this out? I am experiencing the same issue with my AMD Radeon R9 M370X which sounds like it has similar specs to your card (although was produced later).
I was able to get the GPU clocks scaling correctly out of the box with a standard Bazzite distro install but have not been successful in replicating that with any other distro. Otherwise my symptoms are the same, clocks get stuck on 'low' or 'high' but sometimes on a reboot with 'auto' most recently set it will actually pick it up and scale correctly... until the next reboot when the old behaviour returns.
Offline
Hi,
I could not manage to fix it. If I notice that the playback is choppy or the browser becomes slow I turn off the clock throttling by going to:
cd /sys/class/drm/card1/device
(card1 was form me in the path; it may have a different number for you.)
and tweak the power performance level like this:
echo 'high' > power_dpm_force_performance_level
By echoing 'low' instead of 'high' you can decrease the clock. It accepts 'auto' as well, but sometimes 'auto' works, sometimes it does not. (It accepts it, but does not behave as it should.)
I had to enter root to be able to do this ('sudo su').
Offline
Thank you for getting back to me. I am also able to pass the 'high' and 'low' commands like you've mentioned, and 'auto' doesn't work while the clocks are stuck. I prefer not to run the clocks at max because the laptop starts overheating and the fans make a lot of noise, which is frustrating when whatever I am doing is not that graphically challenging (but still requires more than minimum clocks).
However, similarly to you, I've found that changing these settings and rebooting will somehow trigger the right circumstances for the power management to activate properly, and the clocks then scale as expected. Even setting 'high' then 'auto' will cause 'auto' to work as expected while the system is booted in this happy state.
For now my best workaround is running a shell script on shutdown that changes the clock settings around in the hope that upon reboot it will trigger the power management to activate.
echo "high" | tee /sys/class/drm/card0/device/power_dpm_force_performance_level
echo "performance" | tee /sys/class/drm/card0/device/power_dpm_state
echo "Set AMDGPU performance_level to high"
echo "auto" | tee /sys/class/drm/card0/device/power_dpm_force_performance_level
echo "balanced" | tee /sys/class/drm/card0/device/power_dpm_state
echo "Set AMDGPU performance_level to defaults"
I would love to know what Bazzite has done to make this card work with power management consistently, and have spent quite a bit of time going through their Github repo, but can't figure it out. May be a side effect of something else they are doing rather than a specific fix for these cards.
Offline
Pages: 1