Bug 108015

Summary: Enabling pp_od_clk_voltage causes the gpu to be locked to lowest power level until some value is written to pp_od_clk_voltage and then the pp_od_clk_voltage is reset.
Product: DRI Reporter: igo95862
Component: DRM/AMDgpuAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Screenshot 1
none
Screenshot 2
none
Screenshot 3
none
Screenshot 4
none
Screenshot 5 none

Description igo95862 2018-09-22 03:43:22 UTC
After enabling the overclocking by adding amdgpu.ppfeaturemask=0xffffffff kernel boot parameter I noticed that my GPU works very slow. I noticed by reading /sys/kernel/debug/dri/1/amdgpu_pm_info that the card fails to go to higher power states.

Here are the screenshots and the way I found to temporarily fix it. I am using Witcher 3 on Steam Proton 3.7.6 as a performance measurement:

https://i.imgur.com/HI6iakk.jpg
1). Initial state. The game is running around 15-20 frames. The pp_od_clk_voltage table seems correct but the power consumption stays around 15 Watts and the clock is stuck at 300 MHz


https://i.imgur.com/LInHonF.jpg
2). Trying to reset it straight away is not helping.


https://i.imgur.com/klkGSoA.jpg
3). Writing a value in to that is already on the table of pp_od_clk_voltage is also not helping.


https://i.imgur.com/BH8ZwIr.jpg
4). Setting a value slightly different than will actually allow the GPU to change its power state to a higher level. However, it is still not fully powered as it would be  without overclocking enabled. The frame rate is only 20-30 and the power is around 80 Watts.


https://i.imgur.com/x1Mipja.jpg
5). Resetting the values now will fully enable the card. Frame rate goes to 100 frames per second and power consumption to 100 Watts.

Here are more information that might be useful:

GPU: Sapphire AMD RX480 Nitro
Kernel: 4.18 ZEN

Thank you for your work on the AMDGPU driver.
Comment 1 igo95862 2018-09-22 09:33:17 UTC
I just discovered that "echo 'c' > pp_od_clk_voltage" needs to be run twice before it takes effect. I will retest my sequence tomorrow.
Comment 2 igo95862 2018-09-25 15:49:02 UTC
After doing some more tests, it seems like changing the clock frequency only takes 1 commit but voltage 2.
Comment 3 igo95862 2018-09-25 15:49:35 UTC
Created attachment 141735 [details]
Screenshot 1
Comment 4 igo95862 2018-09-25 15:49:53 UTC
Created attachment 141736 [details]
Screenshot 2
Comment 5 igo95862 2018-09-25 15:50:14 UTC
Created attachment 141737 [details]
Screenshot 3
Comment 6 igo95862 2018-09-25 15:50:28 UTC
Created attachment 141738 [details]
Screenshot 4
Comment 7 igo95862 2018-09-25 15:50:39 UTC
Created attachment 141739 [details]
Screenshot 5
Comment 8 igo95862 2019-01-18 22:55:03 UTC
Seems to be fixed on the recent kernels.

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.