Bug 106303

Summary: amdgpu on RX 560: memory and core clocks not lowered on idle
Product: DRI Reporter: Mike <bugs.freedesktop.org>
Component: DRM/AMDgpuAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: harry.wentland
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
amdgpu_pm_info with 4.15 kernel
none
amdgpu_pm_info with 4.16 kernel
none
syslog (non0\-kernel stuff removed) none

Description Mike 2018-04-28 21:23:12 UTC
Created attachment 139206 [details]
amdgpu_pm_info with 4.15 kernel

There is a problem with amdgpu power management.
With kernels 4.15.X MCLK is always stays at max value.
With kernels 4.16.X MCLK/SCLK both stays at max.

At idle desktop GPU draws about 4W more, according to /sys/kernel/debug/dri/0/amdgpu_pm_info

Kernels from Ubuntu PPA
http://kernel.ubuntu.com/~kernel-ppa/mainline/

DRM/Mesa libs from Oibaf PPA
https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers
Comment 1 Mike 2018-04-28 21:23:41 UTC
Created attachment 139207 [details]
amdgpu_pm_info with 4.16 kernel
Comment 2 Mike 2018-04-28 21:24:30 UTC
Created attachment 139208 [details]
syslog (non0\-kernel stuff removed)
Comment 3 Mike 2018-04-28 21:27:57 UTC
Also noted, that
/sys/class/drm/card0/device/pp_num_states is limited to:
states: 2
0 boot
1 performance

And power_dpm_state is always 'performance' regarless of values echoed to power_dpm_force_performance_level (tried 'low', 'auto', 'balanced' and 'boot').
Comment 4 Alex Deucher 2018-05-08 22:00:09 UTC
Can you bisect?  Are you using multiple monitors?
Comment 5 Mike 2018-05-09 15:47:51 UTC
>Can you bisect?
No, I'm using pre-compiled kernels.
However, it's clearly happens in-between 4.15.8 and 4.16.{0 .. 2}.
Reproduces stably.

>Are you using multiple monitors?
No, single monitor via DisplayPort (2560x1440x144).

PS. I'm also use amdgpu.dc=1
Comment 6 Julian 2018-06-17 14:11:54 UTC
Can confirm. I'm using a Rx 560 on kernel 4.16 and my clock rate is stuck on 1230MHz permanently.

I'm also using a single 2560x1440x144 monitor

This is directly related to DC. If I run with amdgpu.dc=0 the issue disappears. If I run with amdgpu.dc=1 it shows up. I can't say if it also happened on 4.15 or earlier.

I did notice that dmesg shows about a dozen powerplay errors:

[   94.582083] amdgpu: [powerplay] 
                failed to send message 146 ret is 255 
[   94.582091] amdgpu: [powerplay] 
                failed to send pre message 147 ret is 255 
[   95.895976] amdgpu: [powerplay] 
                failed to send message 145 ret is 255
Comment 7 Mike 2018-06-18 08:50:58 UTC
Power usage partially improved with kernel 4.17.2
Both MCLK and SCLK now lowered to full idle - when monitor is turned OFF.

Also MCLK seems to go idle (300MHz) periodically under low load (2D and browsing).
However, SCLK is still run at top values when monitor is ON, regardless of GPU load (it is about 1-2% according to radeontop utility).
Comment 8 Julian 2018-10-30 15:56:32 UTC
This appears to be fixed for me on 4.18.16. My 570's shader clock now properly goes down to 300MHz on idle, like it does using amdgpu.dc=0.
Comment 9 Martin Peres 2019-11-19 08:37:09 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/367.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.