Low performance after suspend on RX 480
@ChristophHaag
Submitted by Christoph Haag Assigned to Default DRI bug account
Description
Created attachment 125811
dmesg
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Polaris10] (rev c7)
Tried on vanilla Linux 4.7 and 4.8-rc2 with the async pageflip commit reverted.
I'm testing with a very simple directx9 application (without nine) because the impact is extremely obvious with wine: http://www.codesampler.com/dx9src/dx9src_1.htm#dx9_initialization
Before suspending it runs with 5000+ FPS, after suspending it runs with <1000. Also, if you keep the mouse pointer over the window moving, it will have a very small performance drop before suspending and a huuuge performance drop after suspending.
I looked at the powerplay values in sysfs while that application is running in wine and before suspend,
pcie is
0: 2.5GB, x8
1: 8.0GB, x16 *
and sclk is
0: 300Mhz
1: 608Mhz
2: 910Mhz
3: 1077Mhz
4: 1145Mhz
5: 1191Mhz
6: 1236Mhz
7: 1288Mhz *
after suspend it's
pcie
0: 2.5GB, x8 *
1: 8.0GB, x16
and sclk
0: 300Mhz
1: 608Mhz *
2: 910Mhz
3: 1077Mhz
4: 1145Mhz
5: 1191Mhz
6: 1236Mhz
7: 1288Mhz
mclk is
0: 300Mhz
1: 2000Mhz *
in both cases.
I then tried
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
and the sclk clock goes to max and pcie goes to 16x again, but the performance of the application does NOT increase so it looks like the low clocks are a symptom of whatever causes low performance.
dmesg from 4.8-rc2 attached, shows some errors:
[ 574.369317]
failed to send message 5e ret is 0
[ 574.369317] [drm:amdgpu_vce_ring_test_ring [amdgpu]] ERROR amdgpu: ring 12 test failed
[ 574.369317] [drm:amdgpu_resume [amdgpu]] ERROR resume of IP block <vce_v3_0>
failed -110
[ 574.369317] [drm:amdgpu_resume_kms [amdgpu]] ERROR amdgpu_resume failed (-110).
Attachment 125811, "dmesg":
dmesg-after-suspend.txt