Cannot underclock Radeon R9 Pitcairn on Linux

I have a factory-overclocked Radeon 270x “Pitcairn” (Southern Islands) running on Manjaro 5.15 RT, with the amdgpu driver (experimental support).
Problem is it crashes after a while under load. To be expected, since it’s such an old chip. From my investigation it’s not a temperature but rather a hardware problem that people have experienced and discussed on the Arch and Gentoo forums, on Phoronix, Git, Reddit, etc. The solution seems to be to slightly undervolt/underclock the card, in order not to push it to the point of crashing. On Windows this is a non-issue because the Catalyst driver allows you to customize voltages & clocks.
On Linux, however, it seems this chip does not expose the necessary settings for that, and does not allow fine-tuning of voltages and clocks, even with the necessary option (amdgpu.ppfeaturemask=0xffffffff) enabled, maybe due to the fact that support is only “experimental”.
In CoreCtrl software, I can only set fan curves and toggle between “do not control”, “automatic” and “fixed” (1. high or 2. low) power profiles. And the card only reports the following information:
Fan speed
Used memory
Temperature
GPU & Memory clocks.

I would just like to remove the factory overclock, ie. reduce the GPU & memory clocks by 100mhz. But no matter how I mess with the settings (short of flashing anoter vbios, which I don’t know how to do) I cannot achieve this.
Of course, I could just buy a newer card and be done with it. But I like the idea that Gnu+Linux allows you to give old hardware a second life, and I don’t really need to extract more performance out of the hardware, just to prevent it from crashing.

Here’s a log for reference:

ago 12 15:08:31 z170 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, signaled seq=389902, emitted seq=389904
ago 12 15:08:31 z170 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process artofrally.x64 pid 1769 thread artofrally:cs0 pid 1771
ago 12 15:08:31 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset begin!
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCI CONFIG reset
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU pci config reset
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset succeeded, trying to resume
ago 12 15:08:32 z170 kernel: [drm] PCIE gen 3 link speeds already enabled
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCIE GART of 1024M enabled (table at 0x000000F4007E9000).
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow start
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow done
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset(1) succeeded!
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:38 z170 kernel: amdgpu_cs_ioctl: 1187 callbacks suppressed
...
go 12 15:08:58 z170 systemd[1]: Started Getty on tty2.
ago 12 15:08:58 z170 kernel: fbcon: Taking over console
ago 12 15:08:58 z170 kernel: Console: switching to colour frame buffer device 240x67
ago 12 15:08:58 z170 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=getty@tty2 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
ago 12 15:09:05 z170 kernel: amdgpu_cs_ioctl: 54 callbacks suppressed
...
ago 12 15:09:20 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:31 z170 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, signaled seq=389902, emitted seq=389904
ago 12 15:08:31 z170 kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process artofrally.x64 pid 1769 thread artofrally:cs0 pid 1771
ago 12 15:08:31 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset begin!
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCI CONFIG reset
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU pci config reset
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset succeeded, trying to resume
ago 12 15:08:32 z170 kernel: [drm] PCIE gen 3 link speeds already enabled
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCIE GART of 1024M enabled (table at 0x000000F4007E9000).
ago 12 15:08:32 z170 rtkit-daemon[995]: Supervising 6 threads of 1 processes of 1 users.
ago 12 15:08:32 z170 kernel: [drm] PCIE gen 3 link speeds already enabled
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCIE GART of 1024M enabled (table at 0x000000F4007E9000).
ago 12 15:08:32 z170 rtkit-daemon[995]: Supervising 6 threads of 1 processes of 1 users.
ago 12 15:08:32 z170 rtkit-daemon[995]: Successfully made thread 1881 of process 992 owned by '1000' RT at priority 5.
ago 12 15:08:32 z170 rtkit-daemon[995]: Supervising 7 threads of 1 processes of 1 users.
ago 12 15:08:33 z170 kernel: [drm] UVD initialized successfully.
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow start
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow done
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset(1) succeeded!
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:32 z170 kernel: [drm] PCIE gen 3 link speeds already enabled
ago 12 15:08:32 z170 kernel: amdgpu 0000:01:00.0: amdgpu: PCIE GART of 1024M enabled (table at 0x000000F4007E9000).
...
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow start
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: recover vram bo from shadow done
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: amdgpu 0000:01:00.0: amdgpu: GPU reset(1) succeeded!
ago 12 15:08:33 z170 kernel: [drm] Skip scheduling IBs!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!
ago 12 15:08:33 z170 kernel: [drm:amdgpu_cs_ioctl [amdgpu]] *ERROR* Failed to initialize parser -125!

I’d be real thankful if someone could provide their input on the issue.
Cheers!

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.