gpu memory clock locked to 150mhz after resuming from suspend, r7 360
Brief summary of the problem:
suspending and then resuming my system appears to lock the gpu memory clock (mclk) to 150MHz.
- CPU: AMD Ryzen 3300X
- GPU: XFX R7 360 Core Edition (pci device id 0x665f)
- System Memory: 2x Crucial Ballistix 8GB DDR4-3600 (Crucial Technology BL8G36C16U4B.M8FE1)
- Display(s): 2560x1440, 165hz (card outputs 152hz)
- Type of Display Connection: DisplayPort
- Distro name and Version: OpenSUSE Tumbleweed 20210721
- Kernel version: 5.13.2 (5.13.2-1-default for distro)
- Custom kernel: n/a
- AMD package version: open source amdgpu, mesa 21.1.5, DRM 3.41.0, LLVM 12.0.1
How to reproduce the issue:
suspending and resuming on a cold boot causes this issue with the memory clock stuck at the lower of two clocks this card appears to have (150MHz and 1500MHz); this causes noticeable performance issues.
before sleep, reading from
/sys/class/drm/card0/device/hwmon/hwmon1/freq2_input gives a value of
1500000000 while resuming from a suspended session returns
150000000 no matter the graphical load or custom tweaks applied via tools like corectrl.
changing the display settings after resuming (e.g. changing resolution or refresh rate) returned the memory clock to its expected state.
my amdgpu/radeon kernel parameters are the following (the card is running using
amdgpu instead of the
radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.ppfeaturemask=0xffffffff