Corectrl/lact voltage controls unavailable

I have a Radeon 7800 XT and would like to undervolt it. I've tried both corectrl/lact and both only have access to power modes, power limit, and clocks. I have the amdgpu.ppfeaturemask=0xffffffff kernel flag set, and was able to undervolt in windows. Any ideas? I'm sure I'm missing something obvious.
Solution:
Hello I have 7800XT too and undervolting is only going to be supported in kernel 6.7. Then we will need to wait a bit for CoreCtl or Lact to take advantage of the new kernel.
Jump to solution
24 Replies
Icy
IcyOP13mo ago
Hoping someone may have an idea
CoreCtrl v1.3.8

==== Software ====
Kernel version: 6.6.9
Mesa version: 23.3.1

==== [GPU 0] ====
BIOS version: 113-EXT90506-100
Device: Navi 32
Device ID: 747E
Device model ID: 7801
Driver: amdgpu
Memory: 16368 MB
OpenGL version (compat): 4.6
OpenGL version (core): 4.6
PCI Slot: 0000:0c:00.0
Revision: C8
Unique ID: 0DD2119AF71E7390
Vendor: Advanced Micro Devices, Inc.
Vendor ID: 1002
Vendor model ID: 1EAE
Vulkan API version: 4206859

==== AMD Ryzen 5 2600 Six-Core Processor [CPU 0] ====
Architecture: x86_64
Bogomips: 6800.02
Bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0
Byte order: Little Endian
CPU Family: 23
Cores: 6
Execution units: 12
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca sev sev_es
L1 cache (data): 192 KiB (6 instances)
L1 cache (instructions): 384 KiB (6 instances)
L2 cache: 3 MiB (6 instances)
L3 cache: 512 KB
Microcode version: 0x800820d
Model: 8
Model Name: AMD Ryzen 5 2600 Six-Core Processor
Operation modes: 32-bit, 64-bit
Stepping: 2
Vendor ID: AuthenticAMD
Virtualization: AMD-V
CoreCtrl v1.3.8

==== Software ====
Kernel version: 6.6.9
Mesa version: 23.3.1

==== [GPU 0] ====
BIOS version: 113-EXT90506-100
Device: Navi 32
Device ID: 747E
Device model ID: 7801
Driver: amdgpu
Memory: 16368 MB
OpenGL version (compat): 4.6
OpenGL version (core): 4.6
PCI Slot: 0000:0c:00.0
Revision: C8
Unique ID: 0DD2119AF71E7390
Vendor: Advanced Micro Devices, Inc.
Vendor ID: 1002
Vendor model ID: 1EAE
Vulkan API version: 4206859

==== AMD Ryzen 5 2600 Six-Core Processor [CPU 0] ====
Architecture: x86_64
Bogomips: 6800.02
Bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0
Byte order: Little Endian
CPU Family: 23
Cores: 6
Execution units: 12
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca sev sev_es
L1 cache (data): 192 KiB (6 instances)
L1 cache (instructions): 384 KiB (6 instances)
L2 cache: 3 MiB (6 instances)
L3 cache: 512 KB
Microcode version: 0x800820d
Model: 8
Model Name: AMD Ryzen 5 2600 Six-Core Processor
Operation modes: 32-bit, 64-bit
Stepping: 2
Vendor ID: AuthenticAMD
Virtualization: AMD-V
No description
No description
HikariKnight
HikariKnight13mo ago
does the kernel argument actually show up in rpm-ostree kargs?
Icy
IcyOP13mo ago
xuerian@core:/var/home/xuerian$ rpm-ostree kargs
rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rd.luks.options=discard resume=UUID=04f38788-df5b-4894-9545-34263013756d rhgb quiet root=UUID=4aaaffd4-3b6c-4cfb-9ad1-0a0a1af9df55 rw ostree=/ostree/boot.1/default/0525a55fb0cae0b3c75180c1a794d97a396a841f0e30622ed5dc8e7e25c8e26e/0 amdgpu.ppfeaturemask=0xffffffff amdgpu.ppfeaturemask=0xffffffff
xuerian@core:/var/home/xuerian$ rpm-ostree kargs
rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rd.luks.options=discard resume=UUID=04f38788-df5b-4894-9545-34263013756d rhgb quiet root=UUID=4aaaffd4-3b6c-4cfb-9ad1-0a0a1af9df55 rw ostree=/ostree/boot.1/default/0525a55fb0cae0b3c75180c1a794d97a396a841f0e30622ed5dc8e7e25c8e26e/0 amdgpu.ppfeaturemask=0xffffffff amdgpu.ppfeaturemask=0xffffffff
Twice, apparently.
HikariKnight
HikariKnight13mo ago
lets probe it what features of the feature mask it actually supports printf 'amdgpu.ppfeaturemask=0x%x\n' "$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask)))"
Icy
IcyOP13mo ago
xuerian@core:/var/home/xuerian$ cat /sys/module/amdgpu/parameters/ppfeaturemask
0xffffffff
xuerian@core:/var/home/xuerian$ cat /sys/module/amdgpu/parameters/ppfeaturemask
0xffffffff
HikariKnight
HikariKnight13mo ago
as setting all of them to f is generally not a good idea if the card doesnt support said function
Icy
IcyOP13mo ago
amdgpu.ppfeaturemask=0xffffffff as the formatted version.
HikariKnight
HikariKnight13mo ago
then its weird that it does not work corectrl is layered right?
Icy
IcyOP13mo ago
Yeah
xuerian@core:/var/home/xuerian$ rpm-ostree status
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:testing
Digest: sha256:993f2f8bfe02849875e98fb3d5cad5ca4e66a223db3a568956c53bc1dfd34890
Timestamp: 2024-01-07T18:55:04Z
LayeredPackages: corectrl
LocalPackages: lact-0.5.0-0.x86_64
Initramfs: '"-I /etc/crypttab /etc/modprobe.d/amdgpu.conf"'
xuerian@core:/var/home/xuerian$ rpm-ostree status
State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:testing
Digest: sha256:993f2f8bfe02849875e98fb3d5cad5ca4e66a223db3a568956c53bc1dfd34890
Timestamp: 2024-01-07T18:55:04Z
LayeredPackages: corectrl
LocalPackages: lact-0.5.0-0.x86_64
Initramfs: '"-I /etc/crypttab /etc/modprobe.d/amdgpu.conf"'
HikariKnight
HikariKnight13mo ago
not really sure why it does not work then my rx6600 XT has the options
Icy
IcyOP13mo ago
Well, I do appreciate you sanity checking me
HikariKnight
HikariKnight13mo ago
i would remove the duplicate entry though at least
Icy
IcyOP13mo ago
Yeah, trying that now.
HikariKnight
HikariKnight13mo ago
i have to head off now though as it is late we use rpm-ostree kargs --append-if-missing= when we add kargs as that will avoid duplicates 🙂 so maybe worth adding with that once you have removed the feature masks i will check back in the thread if there is any new info when i get on the pc tomorrow
Icy
IcyOP13mo ago
Yeah, tbh I'm not sure how I added them and got two initially. I'm removing it via --editor. And good luck with the new build! 🙂
HikariKnight
HikariKnight13mo ago
which build? it is just late and i am going to bed haha
Icy
IcyOP13mo ago
Ah. My brain somehow got "when I [..] new pc tomorrow"
HikariKnight
HikariKnight13mo ago
ah
Icy
IcyOP13mo ago
🤷
HikariKnight
HikariKnight13mo ago
the new htpc was built months ago, so lets just say you were late with the good luck 😛 think i built it in the end of november but thanks 😄
Kyle Gospo
Kyle Gospo13mo ago
This works for me on a 6900 xt Same ppu setting
Icy
IcyOP13mo ago
rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rd.luks.options=discard resume=UUID=04f38788-df5b-4894-9545-34263013756d rhgb quiet root=UUID=4aaaffd4-3b6c-4cfb-9ad1-0a0a1af9df55 rw amdgpu.ppfeaturemask=0xffffffff ostree=/ostree/boot.0/default/0525a55fb0cae0b3c75180c1a794d97a396a841f0e30622ed5dc8e7e25c8e26e/0
rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rd.luks.options=discard resume=UUID=04f38788-df5b-4894-9545-34263013756d rhgb quiet root=UUID=4aaaffd4-3b6c-4cfb-9ad1-0a0a1af9df55 rw amdgpu.ppfeaturemask=0xffffffff ostree=/ostree/boot.0/default/0525a55fb0cae0b3c75180c1a794d97a396a841f0e30622ed5dc8e7e25c8e26e/0
didn't seem to make a difference. Whelp. Also, I have a 7800XT, I'm not sure how I ended up writing a 5700 😐
Solution
SUN·RA
SUN·RA13mo ago
Hello I have 7800XT too and undervolting is only going to be supported in kernel 6.7. Then we will need to wait a bit for CoreCtl or Lact to take advantage of the new kernel.
Icy
IcyOP13mo ago
Oh, glad to know I’m not crazy. Thanks!

Did you find this page helpful?