Bug 218686
Summary: | Fail to set energy_performance_preference of amd processor on asus ga403uv | ||
---|---|---|---|
Product: | Power Management | Reporter: | al0uette |
Component: | cpufreq | Assignee: | linux-pm (linux-pm) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | chemasanchezgarabito, dacian.bujor, grzegorz.kaczynski, k.kirry36, mario.limonciello, mike.stokes85, nicolas.granger.m, Perry.Yuan, vderp, xiaojian.du, zyldragoon |
Priority: | P3 | ||
Hardware: | AMD | ||
OS: | Linux | ||
Kernel Version: | 6.8.x, 6.9.0-rc1 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
ssdt table containing _CPC things
cpuinfo output Screenshot of HWinfo64 Screenshot of Windows event viewer attachment-18522-0.html attachment-26939-0.html CPPC working on windows asus ga403uv Smokeless UAMF options The second video of the smokeless uamf video ACPI tables looks ok Patch for cppc_set_epp_perf new patch including acpi version checking opt EPP register writes from FFH opt EPP register writes from FFH (v2) opt EPP register writes from FFH (v3) |
can anyone take a look at this issue? This is a modern machine (Phoenix) that should support X86_FEATURE_CPPC. Do you "need" to set amd_pstate=active on the kernel command line? If so, then that points at a bigger problem to me. That's supposed to be the default on machines like yours. Can you please share /proc/cpuinfo? I suggest turning on dynamic debug for drivers/cpufreq/amd-pstate.c while reproducing this error and then sharing the snippet it has with the messages that occurred. https://www.kernel.org/doc/html/v6.9-rc3/admin-guide/dynamic-debug-howto.html Created attachment 306116 [details]
cpuinfo
I'm not sure do I need to append amd_pstate=active to commandline to enable amd-pstate-epp, I'll try to boot without it and see which governer is in use.
As for the /proc/cpuinfo, I've uploaded in attachments
OK without that parameter my system uses schedutil as scaling_governer :( Hi,please help to provide this output with below commands. # cd /sys/devices/system/cpu/cpu0/cpufreq # grep . * #sudo rdmsr 0xc00102b3 -a #lscpu -ae #dmesg (In reply to Perry Yuan(AMD) from comment #5) > Hi,please help to provide this output with below commands. > > # cd /sys/devices/system/cpu/cpu0/cpufreq > # grep . * > #sudo rdmsr 0xc00102b3 -a > #lscpu -ae > #dmesg Should I do this with amd_pstate=active commandline? (In reply to al0uette from comment #6) > (In reply to Perry Yuan(AMD) from comment #5) > > Hi,please help to provide this output with below commands. > > > > # cd /sys/devices/system/cpu/cpu0/cpufreq > > # grep . * > > #sudo rdmsr 0xc00102b3 -a > > #lscpu -ae > > #dmesg > > Should I do this with amd_pstate=active commandline? Yes, if your kernel is not updated to include the patches which make the amd_pstate_epp as the default mode, you would need to add amd_pstate=active commandline. After you added the amd_pstate=active and boot system up, we can check why the EPP values cannot be changed. Perry. Created attachment 306117 [details]
output
(In reply to Perry Yuan(AMD) from comment #7) > (In reply to al0uette from comment #6) > > (In reply to Perry Yuan(AMD) from comment #5) > > > Hi,please help to provide this output with below commands. > > > > > > # cd /sys/devices/system/cpu/cpu0/cpufreq > > > # grep . * > > > #sudo rdmsr 0xc00102b3 -a > > > #lscpu -ae > > > #dmesg > > > > Should I do this with amd_pstate=active commandline? > > Yes, if your kernel is not updated to include the patches which make the > amd_pstate_epp as the default mode, you would need to add amd_pstate=active > commandline. > > After you added the amd_pstate=active and boot system up, we can check why > the EPP values cannot be changed. > > Perry. I've uploaded my output. BTW I do use a quite new kernel (6.9.0-rc1), however without amd_pstate=active my system uses acpi-cpufreq :( # sudo apt install msr-tools # sudo rdmsr 0xc00102b3 -a please try this to capture the msr values. (In reply to Perry Yuan(AMD) from comment #10) > # sudo apt install msr-tools > # sudo rdmsr 0xc00102b3 -a > please try this to capture the msr values. I did capture msr value, but it shows segmentation fault, which has been presented in my output [ 107.095506] rdmsr[3791]: segfault at fffffffffffffff2 ip 00000000004019ee sp 00007ffd3b1558f0 error 5 in rdmsr[401000+1000] likely on CPU 2 (core 2, socket 0) [ 107.095526] Code: 89 44 24 08 31 c0 48 89 e6 e8 ee f6 ff ff 85 c0 74 40 8d 58 ff 0f 1f 80 00 00 00 00 48 8b 04 24 4c 63 e3 31 f6 ba 0a 00 00 00 <4a> 8b 3c e0 48 83 c7 13 e8 b5 f6 ff ff 89 ef 89 c6 e8 fc fa ff ff This part is already included in my output (In reply to Perry Yuan(AMD) from comment #10) > # sudo apt install msr-tools > # sudo rdmsr 0xc00102b3 -a > please try this to capture the msr values. It turns out that the segfault is cause by my distribution/kernel version. I changed to archlinux with 6.9.0-rc2 and got all zeros after executing rdmsr (In reply to al0uette from comment #13) > (In reply to Perry Yuan(AMD) from comment #10) > > # sudo apt install msr-tools > > # sudo rdmsr 0xc00102b3 -a > > please try this to capture the msr values. > > It turns out that the segfault is cause by my distribution/kernel version. I > changed to archlinux with 6.9.0-rc2 and got all zeros after executing rdmsr Got it, I will get one same CPU system to check the issue. thanks for the issue reporting. Perry. Could you check the BIOS setting for the CPPC enablement? 1. boot into BIOS 2. turn on the CPPC "CBS — SMU Feature — Enable CPPC" (In reply to Perry Yuan(AMD) from comment #15) > Could you check the BIOS setting for the CPPC enablement? > > 1. boot into BIOS > 2. turn on the CPPC "CBS — SMU Feature — Enable CPPC" Asus don't provide that option in BIOS, I guess I can only do that via Smokeless UMAF? But it's not officially supported. (In reply to Perry Yuan(AMD) from comment #14) > (In reply to al0uette from comment #13) > > (In reply to Perry Yuan(AMD) from comment #10) > > > # sudo apt install msr-tools > > > # sudo rdmsr 0xc00102b3 -a > > > please try this to capture the msr values. > > > > It turns out that the segfault is cause by my distribution/kernel version. > I > > changed to archlinux with 6.9.0-rc2 and got all zeros after executing rdmsr > > Got it, I will get one same CPU system to check the issue. > thanks for the issue reporting. > > > Perry. Thank you too for your response. I got zero response from nvidia guys after reporting a bug to them ;) I guess all the OEMs should provide the option to users, just need to find it. How about this path? Advanced-> AMD CBS -> NBIO Common options -> SMU Common Options-> CPPC (In reply to Perry Yuan(AMD) from comment #18) > I guess all the OEMs should provide the option to users, > just need to find it. > How about this path? > Advanced-> AMD CBS -> NBIO Common options -> SMU Common Options-> CPPC No, they just don't provide it, you can take a look of this picture. https://www.notebookcheck.pl/fileadmin/_processed_/f/9/csm_bios_3_2616b186e4.jpg original post here: https://www.notebookcheck.pl/Recenzja-Asus-ROG-Zephyrus-M-GM501GS.299168.0.html Though my BIOS is slightly different from that, but they still don't provide that option. Hi bro, I checked your cpuinfo log, the CPPC is not enabled on your system, so the MSR will not work at all, EPP values need to update through MSR interface and you also see the crash log when you try to read or write MSR. for example, this is captured from my system, lscpu need to expose the cppc flag on your system like mine. ------------------------------------------------------ CPU family: 25 Model: 116 # lscpu | grep cppc rdpru wbnoinvd <CPPC> arat npt lbrv... ------------------------------------------------------ If your system BIOS have no such option, it will not allow amd pstate driver work as expected. Please contact with ASUS to request new BIOS to enable CPPC for your system. Perry. Thank you for all of your help. But I don't know how to contact with ASUS to request new BIOS, can you please tell me how? (In reply to al0uette from comment #21) > Thank you for all of your help. But I don't know how to contact with ASUS to > request new BIOS, can you please tell me how? I guess you can get contact window by searching the "ASUS Support" or service call/asus contact support something like that. OK, thank you. As this is caused by a BIOS issue that we can't do anything about in Linux, closing the issue. FWIW if you're getting resistance from ASUS in fixing it you can try to reproduce it in Windows. AFAICT HWinfo64 will report whether CPPC is working or not. https://www.hwinfo.com/forum/threads/how-does-hwinfo-query-the-cppc-preferred-cores-data.7927/ Strangely I found CPPC do work on Windows Created attachment 306126 [details]
Screenshot of HWinfo64
Created attachment 306127 [details]
Screenshot of Windows event viewer
confirmed from another Phoenix 7840HS platform: CPPC flag is exposed by BIOS. So, on your 8945H CPU platform, it is very possible that ASUS doesn't enable the CPPC in the BIOS. I see this BIOS is built at 02/15/2024 "DMI: ASUSTeK COMPUTER INC. ROG Zephyrus G14 GA403UV_GA403UV/GA403UV, BIOS GA403UV.303 02/15/2024" ~$ cat /proc/cpuinfo | grep cppc 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 amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd **cppc** arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d BTW, suppose you're using a test kernel 6.9-rc built by yourslef,, need to check kernel building config file to enable msr support: make menucofnig -> Processor type and features -> <M>/dev/cpu/*/msr - Model-specific register support, change <M> to <*> (In reply to xiaojian.du from comment #28) > confirmed from another Phoenix 7840HS platform: > CPPC flag is exposed by BIOS. > So, on your 8945H CPU platform, it is very possible that ASUS doesn't enable > the CPPC in the BIOS. > I see this BIOS is built at 02/15/2024 > "DMI: ASUSTeK COMPUTER INC. ROG Zephyrus G14 GA403UV_GA403UV/GA403UV, BIOS > GA403UV.303 02/15/2024" > > ~$ cat /proc/cpuinfo | grep cppc > 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 amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid > aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic > movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic > cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce > topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 > hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase > bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap > avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec > xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_bf16 > clzero irperf xsaveerptr rdpru wbnoinvd **cppc** arat npt lbrv svm_lock > nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter > pfthreshold v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku > ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg > avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d > > > BTW, suppose you're using a test kernel 6.9-rc built by yourslef,, need to > check kernel building config file to enable msr support: > make menucofnig -> Processor type and features -> <M>/dev/cpu/*/msr - > Model-specific register support, change <M> to <*> typo: make menuconfig -> Processor type and features -> <M>/dev/cpu/*/msr - > Model-specific register support, change <M> to <*> (In reply to xiaojian.du from comment #28) > confirmed from another Phoenix 7840HS platform: > CPPC flag is exposed by BIOS. > So, on your 8945H CPU platform, it is very possible that ASUS doesn't enable > the CPPC in the BIOS. > I see this BIOS is built at 02/15/2024 > "DMI: ASUSTeK COMPUTER INC. ROG Zephyrus G14 GA403UV_GA403UV/GA403UV, BIOS > GA403UV.303 02/15/2024" > > ~$ cat /proc/cpuinfo | grep cppc > 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 amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid > aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic > movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic > cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce > topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 > hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase > bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap > avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec > xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_bf16 > clzero irperf xsaveerptr rdpru wbnoinvd **cppc** arat npt lbrv svm_lock > nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter > pfthreshold v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku > ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg > avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d > > > BTW, suppose you're using a test kernel 6.9-rc built by yourslef,, need to > check kernel building config file to enable msr support: > make menucofnig -> Processor type and features -> <M>/dev/cpu/*/msr - > Model-specific register support, change <M> to <*> I've also confirmed this on prebuilt stable kernel from my distribution, so it's not my config's problem. But why CPPC works on Windows? Can we add something like a quirk to make CPPC work on Linux for these machines? (In reply to al0uette from comment #30) > (In reply to xiaojian.du from comment #28) > > confirmed from another Phoenix 7840HS platform: > > CPPC flag is exposed by BIOS. > > So, on your 8945H CPU platform, it is very possible that ASUS doesn't > enable > > the CPPC in the BIOS. > > I see this BIOS is built at 02/15/2024 > > "DMI: ASUSTeK COMPUTER INC. ROG Zephyrus G14 GA403UV_GA403UV/GA403UV, BIOS > > GA403UV.303 02/15/2024" > > > > ~$ cat /proc/cpuinfo | grep cppc > > 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 amd_lbr_v2 nopl nonstop_tsc cpuid extd_apicid > > aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic > > movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic > > cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce > > topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 > > hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall > fsgsbase > > bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap > > avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt > xsavec > > xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local > avx512_bf16 > > clzero irperf xsaveerptr rdpru wbnoinvd **cppc** arat npt lbrv svm_lock > > nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter > > pfthreshold v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip > pku > > ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg > > avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d > > > > > > BTW, suppose you're using a test kernel 6.9-rc built by yourslef,, need to > > check kernel building config file to enable msr support: > > make menucofnig -> Processor type and features -> <M>/dev/cpu/*/msr - > > Model-specific register support, change <M> to <*> > > I've also confirmed this on prebuilt stable kernel from my distribution, so > it's not my config's problem. > > But why CPPC works on Windows? Can we add something like a quirk to make > CPPC work on Linux for these machines? From my own platform, renoir APU, amd ryzen 4750g + a520 mainboard, I check hwinfo64 when enabled/disabled CPPC, hwinfo shows diff info. (BIOS pah: AMD CBS->NBIO->SMU COMMON->CPPC auto/enable/disable) From you pic, it shows only "one line" info of CPPC, it matches with mine when disbaled CPPC in BIOS. When enabled CPPC in BIOS, hwinfo shows "two lines" of CPPC info. 核心性能顺序: 8, 5, 1, 7, 3, 4, 2, 6 核心性能顺序(CPPC): 1, 2, 3, 4, 5, 6, 7, 8 On another Phoenix/7840H APU platform, the BIOS also doesn't provide SMU option. In Win11, Hwinfo64 shows only one line info of CPPC: "核心性能顺序(CPPC): 2, 4, 7, 6, 8, 3, 5, 1" But in Ubuntu 22.04.4 OS, "lscpu" command shows CPPC flag truly. (In reply to xiaojian.du from comment #32) > On another Phoenix/7840H APU platform, the BIOS also doesn't provide SMU > option. > In Win11, Hwinfo64 shows only one line info of CPPC: > "核心性能顺序(CPPC): 2, 4, 7, 6, 8, 3, 5, 1" > But in Ubuntu 22.04.4 OS, "lscpu" command shows CPPC flag truly. Thank you for your explanation. So I guess I can only wait asus to fix it? Well now that you know it happens in Windows too maybe it's easier to report to them. One more idea for you. Can you please try to go into BIOS and do "reset BIOS default settings"? Even if you haven't changed anything this will reset any hidden settings too in case there is a problem with one of them. (In reply to Mario Limonciello (AMD) from comment #35) > One more idea for you. Can you please try to go into BIOS and do "reset BIOS > default settings"? Even if you haven't changed anything this will reset any > hidden settings too in case there is a problem with one of them. I've reset and even reflashed BIOS, still no luck (In reply to Mario Limonciello (AMD) from comment #34) > Well now that you know it happens in Windows too maybe it's easier to report > to them. I'll try to persuade them Hi, sudo apt install cpuid sudo cpuid -l 0x80000008 -r Please help to provide this output. Perry. (In reply to Perry Yuan(AMD) from comment #38) > Hi, > > sudo apt install cpuid > sudo cpuid -l 0x80000008 -r > > Please help to provide this output. > > Perry. Here's the output: CPU 0: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 1: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 2: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 3: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 4: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 5: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 6: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 7: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 8: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 9: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 10: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 11: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 12: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 13: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 14: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 15: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 (In reply to al0uette from comment #39) > (In reply to Perry Yuan(AMD) from comment #38) > > Hi, > > > > sudo apt install cpuid > > sudo cpuid -l 0x80000008 -r > > > > Please help to provide this output. > > > > Perry. > > Here's the output: > > CPU 0: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 1: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 2: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 3: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 4: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 5: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 6: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 7: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 8: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 9: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 10: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 11: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 12: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 13: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 14: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 15: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 thanks to share the info, I have been checking with internal teams for this issue. will update here if I got any progres. Perry. (In reply to Perry Yuan(AMD) from comment #40) > (In reply to al0uette from comment #39) > > (In reply to Perry Yuan(AMD) from comment #38) > > > Hi, > > > > > > sudo apt install cpuid > > > sudo cpuid -l 0x80000008 -r > > > > > > Please help to provide this output. > > > > > > Perry. > > > > Here's the output: > > > > CPU 0: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 1: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 2: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 3: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 4: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 5: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 6: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 7: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 8: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 9: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 10: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 11: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 12: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 13: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 14: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > CPU 15: > > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > > edx=0x00010000 > > thanks to share the info, I have been checking with internal teams for this > issue. will update here if I got any progres. > > Perry. Thank you for your help :) The issue has been confirmed that CPPC is not enabled by default on the ASUS GA403uv BIOS release. AMD has requested ASUS to enable CPPC in future BIOS releases. If you wish to expedite the release, you may consider contacting ASUS customer service. Perry. (In reply to Perry Yuan(AMD) from comment #43) > The issue has been confirmed that CPPC is not enabled by default on the ASUS > GA403uv BIOS release. AMD has requested ASUS to enable CPPC in future BIOS > releases. If you wish to expedite the release, you may consider contacting > ASUS customer service. > > Perry. You really helped me a lot, thank you Perry! Hi Perry, I consulted ASUS for this problem and they're unwilling to provide help, and it has been 3 months since the last BIOS update. Today I notice this bug tracker: https://bugzilla.kernel.org/show_bug.cgi?id=218171, which seems have similar issue. Do you think it is possible to fix this problem with similar method? Created attachment 306303 [details] attachment-18522-0.html [AMD Official Use Only - AMD Internal Distribution Only] Hi there, AMD has been checking with asus to request to update bios to new version, Cppc needs to be enabled from BIOS otherwise it will not work anyway. have you submited support case to Asus ? Best regards, Perry Yuan ________________________________ 发件人: bugzilla-daemon@kernel.org <bugzilla-daemon@kernel.org> 发送时间: Friday, May 17, 2024 4:50:33 PM 收件人: Yuan, Perry <Perry.Yuan@amd.com> 主题: [Bug 218686] Fail to set energy_performance_preference of amd processor on asus ga403uv https://bugzilla.kernel.org/show_bug.cgi?id=218686 --- Comment #45 from al0uette@outlook.com --- Hi Perry, I consulted ASUS for this problem and they're unwilling to provide help, and it has been 3 months since the last BIOS update. Today I notice this bug tracker: https://bugzilla.kernel.org/show_bug.cgi?id=218171, which seems have similar issue. Do you think it is possible to fix this problem with similar method? -- You may reply to this email to add a comment. You are receiving this mail because: You are on the CC list for the bug. (In reply to Perry Yuan(AMD) from comment #46) > Created attachment 306303 [details] > attachment-18522-0.html > > [AMD Official Use Only - AMD Internal Distribution Only] > > Hi there, AMD has been checking with asus to request to update bios to new > version, Cppc needs to be enabled from BIOS otherwise it will not work > anyway. have you submited support case to Asus ? > > > Best regards, > > Perry Yuan > ________________________________ > 发件人: bugzilla-daemon@kernel.org <bugzilla-daemon@kernel.org> > 发送时间: Friday, May 17, 2024 4:50:33 PM > 收件人: Yuan, Perry <Perry.Yuan@amd.com> > 主题: [Bug 218686] Fail to set energy_performance_preference of amd processor > on asus ga403uv > > https://bugzilla.kernel.org/show_bug.cgi?id=218686 > > --- Comment #45 from al0uette@outlook.com --- > Hi Perry, I consulted ASUS for this problem and they're unwilling to provide > help, and it has been 3 months since the last BIOS update. Today I notice > this > bug tracker: https://bugzilla.kernel.org/show_bug.cgi?id=218171, which seems > have similar issue. Do you think it is possible to fix this problem with > similar method? > > -- > You may reply to this email to add a comment. > > You are receiving this mail because: > You are on the CC list for the bug. Yes, here's their reply: Dear 先生/女士: 您好!非常感谢您对华硕产品的支持与厚爱! 我是为您提供服务的 Vicky,很高兴为您提供本次服务! 关于您反馈的问题,目前查询此机台最新的BIOS的版本为303版本,还没有更新的版本,如您目前已经是303版本建议您正常使用即可,具体发布时间或者更新内容等,需要以发布实际为准,如后续更新,会进行发布,届时您正常连接好充电器,保持开机更新即可,目前没有相关的时间和内容的信息 如您有其他问题欢迎您再次联系我们。 The BIOS release will take longer time than you expected, it is really depending on the customer request and vendor schedule. Anyway, I will check from internal channel for this. Perry. Hi All, I have the same ga403uv system. watch -d cat /sys/devices/system/cpu/cpu*/acpi_cppc/feedback_ctrs Returns changing values, does't this mean cppc is active? Mike. (In reply to Mike from comment #49) > Hi All, > > I have the same ga403uv system. > > watch -d cat /sys/devices/system/cpu/cpu*/acpi_cppc/feedback_ctrs > > Returns changing values, does't this mean cppc is active? > > Mike. Hi Mike, Could you share the output of below commands on your system? sudo rdmsr 0xc00102b3 -a sudo rdmsr 0xc00102b0 -a sudo rdmsr 0xc00102b1 -a sudo cpuid -l 0x80000008 -r Hi Perry, As requested: sudo rdmsr 0xc00102b3 -a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sudo rdmsr 0xc00102b0 -a e295290f dc95290f e895290f d695290f c495290f ca95290f e895290f d095290f e295290fe295290f dc95290fdc95290f e895290fe895290f d695290fd695290f c495290fc495290f ca95290fca95290f e895290fe895290f d095290fd095290f sudo rdmsr 0xc00102b1 -a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 sudo cpuid -l 0x80000008 -r CPU 0: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 1: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 2: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 3: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 4: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 5: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 6: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 7: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 8: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 9: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 10: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 11: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 12: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 13: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 14: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 15: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 Hello Perry, Mike, So, i've stumbled upon this thread regarding the amd-pstate driver and after hours of bashing my head against the wall, i can confirm that i face a similar issue, but in my case its even worse since i use a chinese laptop (so bios updates are kinda out of the question...). I dont want to upset anyone, but to me at least AMD kinda dropped the ball on this CPPC thing, since it should (at least in my opinion) be enabled by default and not up to the vendors. I will be following this thread if anything comes up... Kind regards D (In reply to Dacian B from comment #52) > Hello Perry, Mike, > > So, i've stumbled upon this thread regarding the amd-pstate driver and after > hours of bashing my head against the wall, i can confirm that i face a > similar issue, but in my case its even worse since i use a chinese laptop > (so bios updates are kinda out of the question...). > I dont want to upset anyone, but to me at least AMD kinda dropped the ball > on this CPPC thing, since it should (at least in my opinion) be enabled by > default and not up to the vendors. > I will be following this thread if anything comes up... > > Kind regards D Yeah, totally understand you, but vendors has their process to release their production BIOS, it takes time. Like, you know, diff vendors will cut off their BIOS fucntions to deploy on diff models of baseboard. (In reply to Mike from comment #51) > Hi Perry, > > As requested: > > sudo rdmsr 0xc00102b3 -a > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > 0 > > > sudo rdmsr 0xc00102b0 -a > e295290f > dc95290f > e895290f > d695290f > c495290f > ca95290f > e895290f > d095290f > e295290fe295290f > dc95290fdc95290f > e895290fe895290f > d695290fd695290f > c495290fc495290f > ca95290fca95290f > e895290fe895290f > d095290fd095290f > > sudo rdmsr 0xc00102b1 -a > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > 1 > sudo cpuid -l 0x80000008 -r > CPU 0: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 1: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 2: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 3: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 4: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 5: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 6: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 7: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 8: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 9: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 10: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 11: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 12: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 13: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 14: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > CPU 15: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 Fn80000008_EBX bit27[CPPC] = 0, so the CPPC function is also disabled on your system now. We have requested vendors internally to update BIOS which enables CPPC by default, to speed up the process, I suggested users like you to submit customer support tickets to vendors, it probably makes the release timer earlier. Perry. (In reply to xiaojian.du from comment #53) > (In reply to Dacian B from comment #52) > > Hello Perry, Mike, > > > > So, i've stumbled upon this thread regarding the amd-pstate driver and > after > > hours of bashing my head against the wall, i can confirm that i face a > > similar issue, but in my case its even worse since i use a chinese laptop > > (so bios updates are kinda out of the question...). > > I dont want to upset anyone, but to me at least AMD kinda dropped the ball > > on this CPPC thing, since it should (at least in my opinion) be enabled by > > default and not up to the vendors. > > I will be following this thread if anything comes up... > > > > Kind regards D > > Yeah, totally understand you, but vendors has their process to release their > production BIOS, it takes time. > Like, you know, diff vendors will cut off their BIOS fucntions to deploy on > diff models of baseboard. (In reply to Dacian B from comment #52) > Hello Perry, Mike, > > So, i've stumbled upon this thread regarding the amd-pstate driver and after > hours of bashing my head against the wall, i can confirm that i face a > similar issue, but in my case its even worse since i use a chinese laptop > (so bios updates are kinda out of the question...). > I dont want to upset anyone, but to me at least AMD kinda dropped the ball > on this CPPC thing, since it should (at least in my opinion) be enabled by > default and not up to the vendors. > I will be following this thread if anything comes up... > > Kind regards D CPPC is enabled by default on most of the systems as I know, asus ga403uv is using an older version BIOS PI which not have enabled CPPC yet, AMD has requested vendors to upgrade BIOS to new version. Before the pstate driver enabled, you can load acpi_cpufreq driver as short term solution. Perry. I opened another bug (https://bugzilla.kernel.org/show_bug.cgi?id=219044) but I suspect it might be a duplicate of this one. Can anyone please confirm if this is indeed a duplicate? *** Bug 219044 has been marked as a duplicate of this bug. *** New BIOS version has been released: Version: GA403UV.306 Release Date: 06/05/2024 sudo rdmsr 0xc00102b3 -a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sudo rdmsr 0xc00102b0 -a e295290f dc95290f e895290f d695290f c495290f ca95290f e895290f d095290f e295290fe295290f dc95290fdc95290f e895290fe895290f d695290fd695290f c495290fc495290f ca95290fca95290f e895290fe895290f d095290fd095290f sudo rdmsr 0xc00102b1 -a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sudo cpuid -l 0x80000008 -r CPU 0: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 1: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 2: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 3: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 4: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 5: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 6: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 7: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 8: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 9: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 10: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 11: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 12: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 13: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 14: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 CPU 15: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000
For this output info:
> CPU 14:
> 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f
> edx=0x00010000
Fn80000008_EBX bit27[CPPC] = 0, it remains "0", means CPPC is disabled.
I have the same laptop and also the command outputs are the same. I have updated last week to the last BIOS version, but no changes I have seen. Is there any updates to this? (In reply to Chema from comment #60) > I have the same laptop and also the command outputs are the same. > > I have updated last week to the last BIOS version, but no changes I have > seen. > > Is there any updates to this? Also, if CPPC is working in windows why it cant in linux? (In reply to Chema from comment #61) > (In reply to Chema from comment #60) > > I have the same laptop and also the command outputs are the same. > > > > I have updated last week to the last BIOS version, but no changes I have > > seen. > > > > Is there any updates to this? > > Also, if CPPC is working in windows why it cant in linux? Not exactly. How to check CPPC is used or not on *Windows OS*: *check Windows Logs -> System, look for "Kernel-Processor-Power" or event ID 55. ->>If you find ACPI Collaborative Processor Performance Control, then Windows is using CPPC. ->>If you find ACPI Performance (P) / Throttle (T) State, then it is using legacy P-states, and CPPC is disabled. Created attachment 306643 [details]
attachment-26939-0.html
Hello, Thank you for your message. I am currently out of the office for Labor Day Holiday. If you have any urgent issues or need CPPC, Hetero Core related urgent assistance, please reach out to [Limonciello, Mario]. For non-urgent matters, I will respond to your email as soon as possible upon my return on [5/6]. Best wishes, Perry Yuan
Created attachment 306645 [details]
CPPC working on windows asus ga403uv
The windows kernel log are showing that asus ga403uv in windows 11 is using CPPC
(In reply to xiaojian.du from comment #62) > (In reply to Chema from comment #61) > > (In reply to Chema from comment #60) > > > I have the same laptop and also the command outputs are the same. > > > > > > I have updated last week to the last BIOS version, but no changes I have > > > seen. > > > > > > Is there any updates to this? > > > > Also, if CPPC is working in windows why it cant in linux? > > Not exactly. > > How to check CPPC is used or not on *Windows OS*: > *check Windows Logs -> System, look for "Kernel-Processor-Power" or > event ID 55. > ->>If you find ACPI Collaborative Processor Performance Control, > then Windows is using CPPC. > ->>If you find ACPI Performance (P) / Throttle (T) State, > then it is using legacy P-states, and CPPC is disabled. I have created and attachment showing that CPPC is working on windows, so is this a thing of linux that does not work or is it that windows have a workaround for activating it without the bios having it enabled? Thanks. (In reply to xiaojian.du from comment #62) > (In reply to Chema from comment #61) > > (In reply to Chema from comment #60) > > > I have the same laptop and also the command outputs are the same. > > > > > > I have updated last week to the last BIOS version, but no changes I have > > > seen. > > > > > > Is there any updates to this? > > > > Also, if CPPC is working in windows why it cant in linux? > > Not exactly. > > How to check CPPC is used or not on *Windows OS*: > *check Windows Logs -> System, look for "Kernel-Processor-Power" or > event ID 55. > ->>If you find ACPI Collaborative Processor Performance Control, > then Windows is using CPPC. > ->>If you find ACPI Performance (P) / Throttle (T) State, > then it is using legacy P-states, and CPPC is disabled. I Can confirm on G14 GA304UV that CPPC is enabled under windows, but not Linux: Processor 0 in group 0 exposes the following power management capabilities: Idle state type: ACPI Idle (LPI) States (3 state(s)) Performance state type: ACPI Collaborative Processor Performance Control Nominal Frequency (MHz): 4001 Maximum performance percentage: 139 Minimum performance percentage: 27 Minimum throttle percentage: 10 https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/55901_B1_pub_053.zip Page 120. CPUID_Fn80000008_EBX [Extended Feature Extensions ID EBX] Bit 27 CPPC. Read-only. Reset: 1. Collaborative Processor Performance Control. sudo cpuid -l 0x80000008 -r CPU 0: 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f edx=0x00010000 Bit 27 = 0, that means BIOS didn`t enable CPPC capability, OS cannot detect the CPPC flag on the system, you can check lscpu output, #lscpu |grep cppc. Windows maybe don`t depends on this CPUID bit, but Linux detect the CPUID and set cppc flag at kernel booting. no cppc flag, amd-pstate driver cannot load so far. (In reply to Perry Yuan(AMD) from comment #67) > https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/ > programmer-references/55901_B1_pub_053.zip > > Page 120. > > CPUID_Fn80000008_EBX [Extended Feature Extensions ID EBX] > Bit 27 CPPC. Read-only. Reset: 1. Collaborative Processor Performance > Control. > > sudo cpuid -l 0x80000008 -r > CPU 0: > 0x80000008 0x00: eax=0x00003030 ebx=0x111ef257 ecx=0x0000400f > edx=0x00010000 > > Bit 27 = 0, that means BIOS didn`t enable CPPC capability, OS cannot detect > the CPPC flag on the system, > > you can check lscpu output, > > #lscpu |grep cppc. > > Windows maybe don`t depends on this CPUID bit, but Linux detect the CPUID > and set cppc flag at kernel booting. no cppc flag, amd-pstate driver cannot > load so far. Ok, I understand, so ASUS is not doing it in the standard way. I have contacted them and I am waiting for a response, but being more should bring more attention, I don't know if you Perry could do something special to contact them an press them in some way, as I am aware that they only support windows officially, I (and I think all of use in this thread) would be very thankful to you. Also in the case that they didn't want to make the change, what solution we could potentially create, I have done system development a few times, I don't know if it is possible to create some kind of driver of module for the kernel that modified this behaviour. Also, if all the others in this thread with the same problem could contact ASUS to write a ticket, may catch their attention to this matter. Created attachment 306661 [details]
Smokeless UAMF options
I have booted Smokeless UAMF to see the hidden settings in the bios
But so far I didnt find anything related to CPPC in all the aviable paths
The only thing that seems similar is something about "Custom Core Pstates" option and PPC adjustment in the CPU configuration page.
I attach 2 videos, one showing all the aviable bios options and that there is not one for CPPC and the second video showing the CPU configuration page.
Sorry for the bad quality of the video, but the max size attachment is 5mb, I can provide links to videos in higher res.
Hope that this sheds some light.
Created attachment 306662 [details]
The second video of the smokeless uamf video
Second video
After reading @Chema's last comments, i also booted up Smokeless UAMF and tried to find the CPPC setting, but for me it seems its not there... From Arch's wiki: "Change Enable CPPC , usually found in the AMD CBS > NBIO > SMU > CPPC, from Auto to Enabled, or any similar settings in your UEFI. If they are not present, consult the vendor website for an update." When i access the CBS section in UAMF i have options only to set iGPU stuff (and limited at the frame buffer size). Created attachment 306666 [details] ACPI tables looks ok Ok, I have done many things since last comment that might shed some light to this matter. I have disassembled the ACPI tables of the laptop with latest BIOS (306) The attacment is the ACPI table that contains the _CPC objects definition. As UEFI defines: - https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and_Control.html?highlight=cppc#collaborative-processor-performance-control In the line 381 it defines the _CPC object of the first thread of the processor and in the line 522 it defines the CPPC Enable Register as in the ACPI specification, and it seems that the register is implemented correctly. So three questions raises here to me: - Why smokeless UAMF is not showing the option? - Why is not linux reading it correctly if it is implemented? - I am reading wrong the ACPI table and this means oher thing? So to me looks that we cant do nothing in the ACPI tables to enable the register as it is already correct in the current tables. Also I have searched through the kernel code implementation of arch to see how the CPPC thing is being enabled, and looks like the code of the function functions in two ways: - Hardcoded condition for some processors to enable by default - Or lastly check the CPUID bit 27 is set to 1 https://github.com/archlinux/linux/blob/b1bc554e009e3aeed7e4cfd2e717c7a34a98c683/arch/x86/kernel/acpi/cppc.c#L14 I dont know why is it not working the last part as the register is correctly implemented. But what I know is that this system configuration has a configuration of: - boot_cpu_data.x86 = 25 or 0x19 - boot_cpu_data.x86_model = 117 or 0x75 Done with command (lscpu | grep 'CPU family' && lscpu | grep 'Model:') So clearly the hardcoded conditions do not apply to this system configuration Given this for me only 2 posible solutions appear: - Asus fixes this, but, may not seem probably to me as they do not support linux and also the BIOS seems to correctly implement the ACPI tables. And of course the fact that they didnt say nothing about this matter. - We try to debug why the system is not reading/setting correctly the CPPC register or what is really happening - We path the linux kernel to include a condition to support this system Should be pretty simple, only add an "&&" to the if confition. And I dont know if also a possible solution my be to not implement the CPPC Enable Register in the ACPI table so that OSPM enables CPPC by default as says in this link? https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and_Control.html?highlight=cppc#cppc-enable-register Of course it would be needed to create the updated table and use intrd to make the linux kernel https://docs.kernel.org/admin-guide/acpi/initrd_table_override.html Also I see that in the kernel logs when booting it says the following: ☁ ~ sudo dmesg | grep CPPC [ 1.565705] ACPI CPPC: Parsed CPC struct for CPU: 0 [ 1.565845] ACPI CPPC: Parsed CPC struct for CPU: 1 [ 1.565928] ACPI CPPC: Parsed CPC struct for CPU: 2 [ 1.566022] ACPI CPPC: Parsed CPC struct for CPU: 3 [ 1.566136] ACPI CPPC: Parsed CPC struct for CPU: 4 [ 1.566246] ACPI CPPC: Parsed CPC struct for CPU: 5 [ 1.566365] ACPI CPPC: Parsed CPC struct for CPU: 6 [ 1.566476] ACPI CPPC: Parsed CPC struct for CPU: 7 [ 1.566566] ACPI CPPC: Parsed CPC struct for CPU: 8 [ 1.566651] ACPI CPPC: Parsed CPC struct for CPU: 9 [ 1.566736] ACPI CPPC: Parsed CPC struct for CPU: 10 [ 1.566844] ACPI CPPC: Parsed CPC struct for CPU: 11 [ 1.566952] ACPI CPPC: Parsed CPC struct for CPU: 12 [ 1.567067] ACPI CPPC: Parsed CPC struct for CPU: 13 [ 1.567191] ACPI CPPC: Parsed CPC struct for CPU: 14 [ 1.567341] ACPI CPPC: Parsed CPC struct for CPU: 15 [ 1.585000] amd_pstate: AMD CPPC shared memory based functionality is supported [ 1.586011] ACPI CPPC: _CPC in PCC is not supported [ 1.586134] ACPI CPPC: _CPC in PCC is not supported [ 1.586204] ACPI CPPC: _CPC in PCC is not supported [ 1.586230] ACPI CPPC: _CPC in PCC is not supported [ 1.586275] ACPI CPPC: _CPC in PCC is not supported [ 1.586302] ACPI CPPC: _CPC in PCC is not supported [ 1.586347] ACPI CPPC: _CPC in PCC is not supported [ 1.586376] ACPI CPPC: _CPC in PCC is not supported [ 1.586412] ACPI CPPC: _CPC in PCC is not supported [ 1.586469] ACPI CPPC: _CPC in PCC is not supported [ 1.586494] ACPI CPPC: _CPC in PCC is not supported [ 1.586530] ACPI CPPC: _CPC in PCC is not supported [ 1.586579] ACPI CPPC: _CPC in PCC is not supported [ 1.586616] ACPI CPPC: _CPC in PCC is not supported [ 1.586644] ACPI CPPC: _CPC in PCC is not supported [ 1.586669] ACPI CPPC: _CPC in PCC is not supported And that logs are thrown in: - L879 cppc_acpi.c - L1491 cppc_api.c And first one means that /** * acpi_cppc_processor_probe - Search for per CPU _CPC objects. * @pr: Ptr to acpi_processor containing this CPU's logical ID. * * Return: 0 for success or negative value for err. */ int acpi_cppc_processor_probe(struct acpi_processor *pr) is working correctly But then "int cppc_set_epp_perf" throwing because of "if (CPC_IN_PCC(epp_set_reg) || CPC_IN_PCC(auto_sel_reg))" is not met So can correclty read the CPC object of ACPI but not write with PCC in the CPC obj? I checked on my desktop PC, based on Asus B650M mainboard. "Advanced option-> CPU option -> PSS disable/enable"is the switch option of CPPC. Disabling *PSS* option will make Win11 OS switch to generic ACPI processor pm management. Back to this issue, somehow ASUS has enabled CPPC support in bios,as it showes "PSS ENABLED" in this video. https://bugzilla.kernel.org/attachment.cgi?id=306662 But the key CPUID bit of CPPC func enablement still is not written "1" in this new version BIOS, besides, the dmesg log shows the _cpc obj in the ACPI table is null, "ACPI CPPC: _CPC in PCC is not supported". So the conclusion is, CPPC func is enabled in this new version BIOS and Win OS is using it, but it doesn't support Linux OS. Maybe ASUS didn't put too much notice to the user case on linux os? (In reply to xiaojian.du from comment #74) > I checked on my desktop PC, based on Asus B650M mainboard. > > "Advanced option-> CPU option -> PSS disable/enable"is the switch option of > CPPC. > Disabling *PSS* option will make Win11 OS switch to generic ACPI processor > pm management. > > Back to this issue, somehow ASUS has enabled CPPC support in bios,as it > showes "PSS ENABLED" in this video. > https://bugzilla.kernel.org/attachment.cgi?id=306662 > > But the key CPUID bit of CPPC func enablement still is not written "1" in > this new version BIOS, besides, the dmesg log shows the _cpc obj in the > ACPI table is null, > "ACPI CPPC: _CPC in PCC is not supported". > > So the conclusion is, CPPC func is enabled in this new version BIOS and Win > OS is using it, but it doesn't support Linux OS. > > Maybe ASUS didn't put too much notice to the user case on linux os? Thanks for checking It seems that way, asus has made it work in windows but not in the standard way needed by linux. But either way the amd pstate driver is working, but the epp change is not working. What could be the easiest to try to solve it from our part, modifying the kernel in some way? If windows is working it should be a workaround to make it work maybe disable some checks or something like this https://github.com/archlinux/linux/blob/b1bc554e009e3aeed7e4cfd2e717c7a34a98c683/arch/x86/kernel/acpi/cppc.c#L14 or this https://github.com/archlinux/linux/blob/defaf1a2113a22b00dfa1abc0fd2014820eaf065/drivers/acpi/cppc_acpi.c#L1491...? Cause ASUS has not made any comment about it, I dont know from your part it they have internally said something to you. Thanks Hello! I have Lenovo V15 (Ryzen 3 7320U) Laptop (without any BIOS CPPC options). I'm using Debian 12 with 6.9.7 kernel (from backports) + compiled kernel with full MSR support. I'm having the same issue with "Unknown error 524". How can i help with solving the problem? What system data/outputs do you need? (In reply to Chema from comment #75) > Thanks for checking > > It seems that way, asus has made it work in windows but not in the standard > way needed by linux. But either way the amd pstate driver is working, but > the epp change is not working. > > What could be the easiest to try to solve it from our part, modifying the > kernel in some way? If windows is working it should be a workaround to > make it work maybe disable some checks or something like this > https://github.com/archlinux/linux/blob/ > b1bc554e009e3aeed7e4cfd2e717c7a34a98c683/arch/x86/kernel/acpi/cppc.c#L14 or > this > https://github.com/archlinux/linux/blob/ > defaf1a2113a22b00dfa1abc0fd2014820eaf065/drivers/acpi/cppc_acpi.c#L1491...? > > Cause ASUS has not made any comment about it, I dont know from your part it > they have internally said something to you. > > Thanks A simple tricky hack can't solve this problem. From the perspective of amd-pstate driver, it is the most reliable solution to check the CPUID register. Any other workaround to enable CPPC feature forcely and load epp mode in Linux OS is ugly and unacceptable. I recommand to wait for further actions from Asus. Anyway, acpi-cpu driver still can be the second option for now. (In reply to xiaojian.du from comment #77) > (In reply to Chema from comment #75) > > > Thanks for checking > > > > It seems that way, asus has made it work in windows but not in the standard > > way needed by linux. But either way the amd pstate driver is working, but > > the epp change is not working. > > > > What could be the easiest to try to solve it from our part, modifying the > > kernel in some way? If windows is working it should be a workaround to > > make it work maybe disable some checks or something like this > > https://github.com/archlinux/linux/blob/ > > b1bc554e009e3aeed7e4cfd2e717c7a34a98c683/arch/x86/kernel/acpi/cppc.c#L14 or > > this > > https://github.com/archlinux/linux/blob/ > > defaf1a2113a22b00dfa1abc0fd2014820eaf065/drivers/acpi/cppc_acpi.c#L1491...? > > > > Cause ASUS has not made any comment about it, I dont know from your part it > > they have internally said something to you. > > > > Thanks > > A simple tricky hack can't solve this problem. > From the perspective of amd-pstate driver, it is the most reliable solution > to check the CPUID register. > Any other workaround to enable CPPC feature forcely and load epp mode in > Linux OS is ugly and unacceptable. > I recommand to wait for further actions from Asus. > > Anyway, acpi-cpu driver still can be the second option for now. Thanks But have you any initial idea of how a workaround could work? Obviously for developing it my self locally and so people could have some solution while asus does something, if ever does, considering they do not support linux Yes, currently I use acpi-cpu, but powersave governor makes the laptop laggy and schedutil that should be a balance makes it hot and drains battery faster. So currently for my self linux in this laptop is not much a good option, that why I was wondering if a local workaround would be possible. Thanks. Hi everyone, I have some new discoveries. I think the problem lies in that `if (CPC_IN_PCC(epp_set_reg) || CPC_IN_PCC(auto_sel_reg))` needs one of the two registers satisfies that `(cpc)->type == ACPI_TYPE_BUFFER && (cpc)->cpc_entry.reg.space_id == ACPI_ADR_SPACE_PLATFORM_COMM`. However in asus's BIOS, epp_set_reg's type is integer, and its space_id is ACPI_ADR_SPACE_SYSTEM_MEMORY, and auto_sel_reg's type is buffer, and its space id is ACPI_ADR_SPACE_FIXED_HARDWARE, so these conditions are not met. After manually bypassing this check, another problem rises, pcc_ss_id on every cpu is -1. According to acpi specification, letting auto_sel_reg be a functional fixed hardware is valid, so my question is, will functional fixed hardware be supported? And what causes pcc_ss_id being -1 on every cpu? I'll appreciate it if someone can answer my questions. Just found that pcc_ss_id == 1 is also because many element in _CPC is Functional Fixed Hardware (In reply to al0uette from comment #80) > Just found that pcc_ss_id == 1 is also because many element in _CPC is > Functional Fixed Hardware Edit: pcc_ss_id == -1 Created attachment 306832 [details]
Patch for cppc_set_epp_perf
I've made a patch to make the kernel write to the epp register even when the register is not in PCC. The patch seems to work for me, I can set epp without unknown error 524 and the power consumption is lower than before.
@al0uette@outlook.com: Very interesting observation. I did double check the ACPI spec and found this. ''' Starting with ACPI Specification 6.2, all _CPC registers can be in PCC, System Memory, System IO, or Functional Fixed Hardware address spaces. OSPM support for this more flexible register space scheme is indicated by the “Flexible Address Space for CPPC Registers” _OSC bit. ''' So yes I do think this 'direction' is OK to go, but it probably needs an extra check on the ACPI 6.2 version. Something like this: if (acpi_gbl_FADT.header.revision > 6 || (acpi_gbl_FADT.header.revision == 6 && acpi_gbl_FADT.minor_revision >= 2)) Can you please spin your patch to add that and a proper commit message and then post it to the linux-acpi mailing list? (In reply to Mario Limonciello (AMD) from comment #83) > @al0uette@outlook.com: > > Very interesting observation. I did double check the ACPI spec and found > this. > > ''' > Starting with ACPI Specification 6.2, all _CPC registers can be in PCC, > System Memory, System IO, or Functional Fixed Hardware address spaces. OSPM > support for this more flexible register space scheme is indicated by the > “Flexible Address Space for CPPC Registers” _OSC bit. > ''' > > So yes I do think this 'direction' is OK to go, but it probably needs an > extra check on the ACPI 6.2 version. Something like this: > > if (acpi_gbl_FADT.header.revision > 6 || > (acpi_gbl_FADT.header.revision == 6 && acpi_gbl_FADT.minor_revision >= 2)) > > Can you please spin your patch to add that and a proper commit message and > then post it to the linux-acpi mailing list? I don't know how to do that, can you help me? BTW I heard that AMD seems not quite happy with the Functional Fixed Hardware implementation, is there any performance difference between PCC and FFH implementation? If there is noticeable performance difference, can AMD urge ASUS to switch to PCC implementation? Created attachment 306840 [details] new patch including acpi version checking Do you think this is appropriate? @mario.limonciello@amd.com Created attachment 306841 [details]
opt EPP register writes from FFH
Here try this patch. If this works, I'll submit it for review.
Created attachment 306842 [details]
opt EPP register writes from FFH (v2)
Sorry, posted the wrong version. Use this one.
Created attachment 306844 [details]
opt EPP register writes from FFH (v3)
I'll re-open this bug to see if we come up with something that is upstreamable.
Someone did some testing on another bug report and found a problem.
Here is an updated version.
Can you please share the kernel log with this in place as well as the cpupower output?
after testing v2 of the patch on my [ 26.705565] Hardware name: ASUSTeK COMPUTER INC. ASUS Zenbook 14 UM3406HA_UM3406HA/UM3406HA, BIOS UM3406HA.304 06/05/2024 I found it to crash with [ 3.384772] UBSAN: shift-out-of-bounds in drivers/acpi/cppc_acpi.c:1117:9 [ 3.384774] shift exponent 64 is too large for 64-bit type 'long unsigned int' the reason turned out to be: auto_sel_reg real type was ACPI_TYPE_INTEGER(with value 0x1) and cpc_write isn't guarded against ACPI_TYPE_INTEGER value-only registers and performs invalid operation by ignoring auto_sel_reg entirely, I gained a working CPPC, which inspired v3 of the patch There's no ideal diagnostic tool for that, as for frequencies they are seen as something like that, but it was probably the same or very close without CPPC (I wouldn't mind if all of these somehow got to 400Mhz instead of 1400Mhz though) cat /proc/cpuinfo|grep MHz|sort cpu MHz : 1395.796 cpu MHz : 1396.448 cpu MHz : 1397.373 cpu MHz : 1397.388 cpu MHz : 1397.403 cpu MHz : 1397.414 cpu MHz : 1397.434 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 cpu MHz : 400.000 the main difference can be seen in amdgpu_top, which for some reason treats CPU cores as GPU cores it can show mW per Core, and even when frequency stays at 1400, the mW power assigned to these cores is much much smaller, as well as total "GFX" power which is the total APU power, I guess "GFX" is now about 700 mW and "SoC" about 400mW when idle power savings are about 1W for system idle and low-power activities also, smoothness of system animations on power-saving profile has visibly improved (like moving windows in KWin) it also fixed an issue with drastic power draw when basic GPU activities are started after being idle: like moving windows in KWin or scrolling in chrome it used to quickly increase power draw from 2W to 5W, now it increases power draw from 1W to 2W-3W at most (as measured by "GPU Power" which is I guess APU total power) (In reply to Mario Limonciello (AMD) from comment #87) > Created attachment 306842 [details] > opt EPP register writes from FFH (v2) > > Sorry, posted the wrong version. Use this one. v2 doesn't work, it shows "Bad address", testing v3 now (In reply to derp from comment #90) > There's no ideal diagnostic tool for that, as for frequencies they are seen > as something like that, but it was probably the same or very close without > CPPC > > (I wouldn't mind if all of these somehow got to 400Mhz instead of 1400Mhz > though) > > cat /proc/cpuinfo|grep MHz|sort > cpu MHz : 1395.796 > cpu MHz : 1396.448 > cpu MHz : 1397.373 > cpu MHz : 1397.388 > cpu MHz : 1397.403 > cpu MHz : 1397.414 > cpu MHz : 1397.434 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > cpu MHz : 400.000 > > the main difference can be seen in amdgpu_top, which for some reason treats > CPU cores as GPU cores > it can show mW per Core, and even when frequency stays at 1400, the mW power > assigned to these cores is much much smaller, as well as total "GFX" power > which is the total APU power, I guess > > "GFX" is now about 700 mW and "SoC" about 400mW when idle > > power savings are about 1W for system idle and low-power activities Strangely, the gfx power almost always stays above 2000mw for me, the lowest value it can go is about 1600mw, but it can only stay there for just 1 second. Is it because our cpu are different? But even though my power consumption is higher than you, it's still better than acpi-cpufreq and the cpu temperature is significantly lower than acpi-cpufreq (In reply to Mario Limonciello (AMD) from comment #88) > Created attachment 306844 [details] > opt EPP register writes from FFH (v3) > > I'll re-open this bug to see if we come up with something that is > upstreamable. > > Someone did some testing on another bug report and found a problem. > Here is an updated version. > > Can you please share the kernel log with this in place as well as the > cpupower output? v3 doesn't work for me either, it shows device or resource busy (In reply to al0uette from comment #94) > (In reply to Mario Limonciello (AMD) from comment #88) > > Created attachment 306844 [details] > > opt EPP register writes from FFH (v3) > > > > I'll re-open this bug to see if we come up with something that is > > upstreamable. > > > > Someone did some testing on another bug report and found a problem. > > Here is an updated version. > > > > Can you please share the kernel log with this in place as well as the > > cpupower output? > > v3 doesn't work for me either, it shows device or resource busy Sorry, I made a mistake, it works fine, the reason it didn't work is that I mistakenly switched scaling_governor to performance I submitted it for review: https://lore.kernel.org/linux-acpi/20240910031524.106387-1-superm1@kernel.org/ Rafael accepted that patch for 6.12, so we'll see this solution in 6.12-rc1. Thanks for all of you guys. This thread will be the reference for the similar issue on many other OEM devices. Checked the background, it seems ASUS always uses a different palce to store pstate info. like this commit: [PATCH v6 03/14] ACPI: CPPC: implement support for SystemIO registers From: Steven Noonan <steven@valvesoftware.com> According to the ACPI v6.2 (and later) specification, SystemIO can be used for _CPC registers. This teaches cppc_acpi how to handle such registers. This patch was tested using the amd_pstate driver on my Zephyrus G15 (model GA503QS) using the current version 410 BIOS, which uses a SystemIO register for the HighestPerformance element in _CPC. https://lkml.org/lkml/2021/12/19/90 (In reply to al0uette from comment #95) > (In reply to al0uette from comment #94) > > (In reply to Mario Limonciello (AMD) from comment #88) > > > Created attachment 306844 [details] > > > opt EPP register writes from FFH (v3) > > > > > > I'll re-open this bug to see if we come up with something that is > > > upstreamable. > > > > > > Someone did some testing on another bug report and found a problem. > > > Here is an updated version. > > > > > > Can you please share the kernel log with this in place as well as the > > > cpupower output? > > > > v3 doesn't work for me either, it shows device or resource busy > > Sorry, I made a mistake, it works fine, the reason it didn't work is that I > mistakenly switched scaling_governor to performance Thank you for all the work, is there a reason why it got error at performance governor but not at powersave? EPP configuration intentionally isn't available in the performance governor. |
Created attachment 306091 [details] ssdt table containing _CPC things I enabled amd-pstate-epp driver by appending 'amd_pstate=active' to kernel cmdline, and set scaling_governer to powersave, and 'cat /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_available_preferences' do show 'default performance balance_performance balance_power power'. However when I try to change epp to anything other than 'performance'(which is the default) with something like 'echo power |sudo tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference', I get 'tee: /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference: Unknown error 524', which, according to source code, I guess is ENOTSUPP. And I guess it's because cppc_set_epp_perf() in linux/drivers/acpi/cppc_acpi.c checks CPC_IN_PCC(epp_set_reg), and think the register doesn't exist. However I do see the _CPC things in my ssdt. Don't know its' a bug in kernel or BIOS so I report it here