https://bugs.freedesktop.org/show_bug.cgi?id=97362
Bug ID: 97362 Summary: Low performance after suspend on RX 480 Product: DRI Version: unspecified Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: DRM/AMDgpu Assignee: dri-devel@lists.freedesktop.org Reporter: haagch@frickel.club
Created attachment 125811 --> https://bugs.freedesktop.org/attachment.cgi?id=125811&action=edit 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).