4

I have an old graphics card (saphire r9 270x pitcairn architecture) that keeps crashing when under maximum load. the preset stock clock is 1070mhz and it runs fine when underclocked to 1000mhz. I've already enabled amdgpu experimental through:

GRUB_CMDLINE_LINUX_DEFAULT="radeon.cik_support=0 amdgpu.cik_support=1 radeon.si_support=0 amdgpu.si_support=1 amdgpu.ppfeaturemask=0xffffffff radeon.dpm=0 amdgpu.dpm=1"
lspci -nnk | grep -i vga -A3 | grep 'in use'

Kernel driver in use: amdgpu

Clock speeds and voltages are supposed to be changed by overriding GPU's P-states in /sys/class/drm/card0/device/pp_od_clk_voltage and committing it with "c", but when I go in system root folder, I cant find pp_od_clk_voltage in /sys/class/drm/card0/device/. The file is missing. I can only find pp_sclk_od, pp_mclk_od, pp_dpm_sclk and pp_dpm_mclk.

How can I underclock using pp_od_clk_voltage when the file is missing from the system. please, I need help and my English is not very good.

Edit....

i ran this command

ls -l /sys/class/drm/card0/device
/sys/class/drm/card0/device -> ../../../0000:01:00.0
realpath /sys/class/drm/card0/device
/sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0
sudo ls /sys/devices/pci0000\:00/0000\:00\:02.0/0000\:01\:00.0/ | grep pp_od_clk_voltage
"didn't get any output"

it seems like the file is ultimately missing from the system. i can't be sure if it is originally like this or it is my fault.

edit...

i have create the file pp_od_clk_voltage

OD_SCLK:
0:        300MHz        900mV
1:        400MHz        942mV
2:        500MHz        984mV
3:        600MHz       1026mV
4:        700MHz       1068mV
5:        800MHz       1110mV
6:        900MHz       1152mV
7:       1000MHz       1200mV
OD_MCLK:
0:        300MHz        900mV
1:       1000MHz       1050mV
2:       1400MHz       1200mV
OD_RANGE:
SCLK:     300MHz       1000MHz
MCLK:     300MHz       1400MHz
VDDC:     900mV        1200mV

i use mv command

mv pp_od_clk_voltage /sys/devices/pci0000\:00/0000\:00\:02.0/0000\:01\:00.0/

mv: cannot create regular file '/sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0/pp_od_clk_voltage': Permission denied

i also use touch and nano by moving to the designated directory

cd /sys/devices/pci0000\:00/0000\:00\:02.0/0000\:01\:00.0/

touch pp_od_clk_voltage
touch: cannot touch 'pp_od_clk_voltage': Permission denied

nano pp_od_clk_voltage
Error writing pp_od_clk_voltage: Permission denied

all of this is done by logging to root account using su command

i have already check the file permission of /sys folder

ls -l 

drwxr-xr-x  13 root root     0 Aug 23 23:01 sys

i don't understand why is this happening

  • 1
    TLP might help. please take a look at https://askubuntu.com/questions/1159995/why-is-ubuntu-mate-16-04-runs-hotter-than-windows-7-on-my-core2-and-ati-mobility/1160001#1160001 – Raffa Aug 09 '19 at 12:38
  • i already tried and look into it. i'm not using laptop. its a diy pc. – mangorilla Aug 12 '19 at 03:13
  • It can help even on a Desktop PC. I have used it with many old computers to solve crashing and suddenly restarting problems due to overheating old CPUs and GPUs and it always helped. – Raffa Aug 12 '19 at 03:35
  • i have used tlp for about a week now. sadly the problem still persist. the computer is a dual boot system that runs fine under windows machine underclock with catalyst driver although that said driver is considered outdated in linux and i prefer not to use it. is there any other solution that i can try? – mangorilla Aug 18 '19 at 19:37
  • Please run uname -a and then run readlink -f /sys/class/drm/card0/device and add the output of both to your question by editing it: https://askubuntu.com/posts/1164541/edit – Raffa Aug 18 '19 at 22:23
  • If you wish, you can create it by running sudo touch /sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0/pp_od_clk_voltage if you think you removed it by mistake. – Raffa Aug 20 '19 at 16:06
  • Dear mangorilla, I have the exact same problem with a HD 7870 running in Xubuntu. Did you find a solution? Thanks. – Santiago Capobianco Feb 08 '20 at 20:32

0 Answers0