RX 7700XT/RX 7800XT setting powerlimit above the default value fails.
Brief summary of the problem:
As the title says, setting the powerlimit of a RX 7700XT/RX 7800XT fails. I only have a RX 7700XT, so I can only test it for this card but I have talked to people who own a RX 7800XT and they told me that they have exactly the same issue. Another issue that might be connected to this is that in my case the incorrect powerlimit is reported by power1_cap_max
reports a higher value than my GPU vendor.
Hardware description:
- CPU: Ryzen 7 3700X
- GPU:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev ff)
more specific: GIGABYTE Radeon RX 7700 XT Gaming OC 12G - System Memory: 16GB DDR4 3200Mhz RAM
- Display(s): 2 1920x1080 displays one 60Hz and the other one 144Hz
- Type of Display Connection: 1 HDMI and 1 DP
System information:
- Distro name and Version: Debian unstable/sid
- Kernel version: 6.7.0
- Custom kernel: downloaded from the kernel.org website and compiled manually. This issue also persists with other official debian kernel versions.
- AMD official driver version: N/A with
linux-firmware
version20240115
How to reproduce the issue:
As we can see below, when I try to set a higher value than power1_cap_default
but lower than power1_cap_max
I get an input/output error. Another error is also posted in dmesg
(see section Log Files).
root@gwendolene:~# cd /sys/class/drm/card0/device/hwmon/hwmon1
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# cat power1_cap
220000000
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# cat power1_cap_default
220000000
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# cat power1_cap_max
253000000
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# echo 230000000 > power1_cap
-bash: echo: write error: input/output error.
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# echo 210000000 > power1_cap
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1# echo 220000000 > power1_cap
root@gwendolene:/sys/class/drm/card0/device/hwmon/hwmon1#
Another interesting thing is that power1_cap_max
reports a max power limit of 253W, but all product pages (the official doesn't list a max power consumption) I could find report that my card has a max TDP of 245W. Any other test value above power1_cap_default
(so 220W) fails and it doesn't matter if I'm above or below the actual or reported maximum power consumption.
Log files
journalctl -e
show the following log which gets produced when running echo 230000000 > power1_cap
.
Feb 12 15:11:34 gwendolene kernel: amdgpu 0000:0b:00.0: amdgpu: [smu_v13_0_set_power_limit] Set power limit Failed!
no other messages in this timeframe related to amdgpu
are present in the log.