Bug 218171

Summary: amd-pstate not loading on zen2 threadripper 3960x (trx40
Product: Power Management Reporter: Gino Badouri (badouri.g)
Component: cpufreqAssignee: linux-pm (linux-pm)
Status: RESOLVED ANSWERED    
Severity: normal CC: alessio.disandro, badouri.g, gilvbp, johnypean, ozin, Perry.Yuan, pnascimento, sam, vishalrao
Priority: P3    
Hardware: AMD   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Attachments: Asus ROG Zenith II Extreme bios version 1802 (2023/06/20) with CPPC and Preferred Core enabled
Gigabyte TRX40 DESIGNARE BIOS v. FD TR 3970X
ACPI dump for Gigabyte TRX40 AORUS PRO WIFI with a 3970X TR
ACPI tables for TR 3970X on MSI Creator TRX40
HWiNFO CPPC order in Windows
Windows Event Viewer CPPC log
patch to enable amd psate driver for Family 17H

Description Gino Badouri 2023-11-21 09:51:31 UTC

    
Comment 1 Gino Badouri 2023-11-21 09:56:21 UTC
Hi there,

I'm running linux 6.5.11 on a  Asus ROG Zenith II Extreme (TRX40) with a AMD Threadripper 3960X and the amd-pstate driver refuses to load due to missing _CPC objects:

[    0.477523] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled

However both CPPC and AMD Preferred core support is enabled in the firmware.
Also I can confirm there are _CPC entries in the ACPI tables.

acpidump > acpidump.out
acpixtract -a acpidump.out
iasl *.dat
grep -i cpc *.dsl

ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
ssdt7.dsl:        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control

Any ideas why the driver cannot find them?
I could upload the dsl files somewhere if it helps.
Comment 2 Perry Yuan(AMD) 2023-11-21 10:16:12 UTC
Have you checked your BIOS setting? Some BIOS version has the CPPC option to change CPPC default state.
Comment 3 Gino Badouri 2023-11-21 10:48:42 UTC
Hi Perry,

I have the following in: Advanced > AMD CBS > NBIO Common Options > SMU Common Options

CPPC (Auto / Enabled / Disabled): Enabled
CPPC Preferred Cores: Enabled

There is no setting to change the default state.

But there seems to be more reports of TRX40 users who are having the same problem:

https://forum.level1techs.com/t/is-there-cppc-support-on-threadripper-3000-platform/195804/5

https://www.reddit.com/r/threadripper/comments/151l6rn/threadripper_amdpstate_driver_on_arch/

https://www.reddit.com/r/linux/comments/15p4bfs/comment/jvvr12s/?utm_source=reddit&utm_medium=web2x&context=3

A while ago I was running a custom Xanmod kernel which had the amd-pstate patchset applied before it was sent upstream.
It was an older revision of the driver of course but it was working for me.
The only requirement back then was setting the "shared_mem=1" flag on the kernel command line.
But this flag doesn't seem to fix it for me when running linux 6.5.
Comment 4 Perry Yuan(AMD) 2023-11-22 02:43:37 UTC
(In reply to Gino Badouri from comment #3)
> Hi Perry,
> 
> I have the following in: Advanced > AMD CBS > NBIO Common Options > SMU
> Common Options
> 
> CPPC (Auto / Enabled / Disabled): Enabled
> CPPC Preferred Cores: Enabled
> 
> There is no setting to change the default state.
> 
> But there seems to be more reports of TRX40 users who are having the same
> problem:
> 
> https://forum.level1techs.com/t/is-there-cppc-support-on-threadripper-3000-
> platform/195804/5
> 
> https://www.reddit.com/r/threadripper/comments/151l6rn/
> threadripper_amdpstate_driver_on_arch/
> 
> https://www.reddit.com/r/linux/comments/15p4bfs/comment/jvvr12s/
> ?utm_source=reddit&utm_medium=web2x&context=3
> 
> A while ago I was running a custom Xanmod kernel which had the amd-pstate
> patchset applied before it was sent upstream.
> It was an older revision of the driver of course but it was working for me.
> The only requirement back then was setting the "shared_mem=1" flag on the
> kernel command line.
> But this flag doesn't seem to fix it for me when running linux 6.5.

thanks for your information, could you show me the output of lscpu?
And I would like to see if the mainline kernel work for
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/?h=v6.7-rc2

If mainline 6.7 still have problem on your system, I would guess there are some  missing thing we need to figure out.

Perry.
Comment 5 Gino Badouri 2023-11-22 08:34:08 UTC
Hi Perry,

Thanks for looking into this.
I've updated to 6.7 rc2.

# uname -a
Linux pve 6.7.0-060700rc2-generic #202311192332 SMP PREEMPT_DYNAMIC Sun Nov 19 23:40:20 UTC 2023 x86_64 GNU/Linux

# cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-6.7.0-060700rc2-generic root=/dev/mapper/pve-root ro quiet iommu=pt amd_iommu=on kvm_amd.npt=1 kvm_amd.avic=1 nmi_watchdog=0 video=vesafb:off video=efifb:off video=simplefb:off nomodeset initcall_blacklist=sysfb_init modprobe.blacklist=nouveau modprobe.blacklist=amdgpu modprobe.blacklist=radeon modprobe.blacklist=nvidia hugepagesz=1G default_hugepagesz=2M amd_pstate=active

# lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         43 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  48
  On-line CPU(s) list:   0-47
Vendor ID:               AuthenticAMD
  BIOS Vendor ID:        Advanced Micro Devices, Inc.
  Model name:            AMD Ryzen Threadripper 3960X 24-Core Processor
    BIOS Model name:     AMD Ryzen Threadripper 3960X 24-Core Processor  Unknown
                          CPU @ 3.8GHz
    BIOS CPU family:     107
    CPU family:          23
    Model:               49
    Thread(s) per core:  2
    Core(s) per socket:  24
    Socket(s):           1
    Stepping:            0
    Frequency boost:     enabled
    CPU(s) scaling MHz:  58%
    CPU max MHz:         3800.0000
    CPU min MHz:         2200.0000
    BogoMIPS:            7585.72
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mc
                         a cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall n
                         x mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_go
                         od nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl p
                         ni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe
                          popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy sv
                         m extapic cr8_legacy abm sse4a misalignsse 3dnowprefetc
                         h osvw ibs skinit wdt tce topoext perfctr_core perfctr_
                         nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate
                          ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bm
                         i2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsa
                         veopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_tota
                         l cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd
                          amd_ppin arat npt lbrv svm_lock nrip_save tsc_scale vm
                         cb_clean flushbyasid decodeassists pausefilter pfthresh
                         old avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid ov
                         erflow_recov succor smca sev sev_es
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   768 KiB (24 instances)
  L1i:                   768 KiB (24 instances)
  L2:                    12 MiB (24 instances)
  L3:                    128 MiB (8 instances)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-47
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Mitigation; untrained return thunk; SMT enabled with ST
                         IBP protection
  Spec rstack overflow:  Mitigation; Safe RET
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer
                          sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, STIBP always-
                         on, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected


Unfortunately the driver is still printing:
[    0.640246] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled

If it helps, I've uploaded the acpi tables in both dat and dsl format here:
https://mega.nz/file/apkElTBL#JEmN0vmBSh7d-hbDiN-V0lwG7mwZQfitqnv4iVk0ACU
Comment 6 Perry Yuan(AMD) 2023-11-22 08:45:15 UTC
Great, let me check the ACPI tables.
Could you attache the dump file to this bz? 
I cannot access the link to mega.nz.

Perry.
Comment 7 Gino Badouri 2023-11-22 08:49:22 UTC
Created attachment 305458 [details]
Asus ROG Zenith II Extreme bios version 1802 (2023/06/20) with CPPC and Preferred Core enabled
Comment 8 Perry Yuan(AMD) 2023-11-22 08:56:04 UTC
Please try this and see if the files created. 

echo "=============norminal freq==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/nominal_freq

echo "=============norminal perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/nominal_perf

echo "=============highest_perf perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/highest_perf

echo "=============lowest_nonlinear_perf perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/lowest_nonlinear_perf

echo "=============lowest perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/lowest_perf
Comment 9 xinglong.yang 2023-11-22 09:01:52 UTC
-----邮件原件-----
发件人: bugzilla-daemon@kernel.org <bugzilla-daemon@kernel.org>
发送时间: 2023年11月22日 16:45
收件人: linux-pm@vger.kernel.org
主题: [Bug 218171] amd-pstate not loading on zen2 threadripper 3960x (trx40

[你通常不会收到来自 bugzilla-daemon@kernel.org 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]

EXTERNAL EMAIL

https://bugzilla.kernel.org/show_bug.cgi?id=218171

--- Comment #6 from Perry Yuan(AMD) (Perry.Yuan@amd.com) --- Great, let me check the ACPI tables.
Could you attache the dump file to this bz?
Test
I cannot access the link to mega.nz.

Perry.

--
You may reply to this email to add a comment.

You are receiving this mail because:
You are the assignee for the bug.


This email (including its attachments) is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. Unauthorized use, dissemination, distribution or copying of this email or the information herein or taking any action in reliance on the contents of this email or the information herein, by anyone other than the intended recipient, or an employee or agent responsible for delivering the message to the intended recipient, is strictly prohibited. If you are not the intended recipient, please do not read, copy, use or disclose any part of this e-mail to others. Please notify the sender immediately and permanently delete this e-mail and any attachments if you received it in error. Internet communications cannot be guaranteed to be timely, secure, error-free or virus-free. The sender does not accept liability for any errors or omissions.
Comment 10 Gino Badouri 2023-11-22 09:04:52 UTC
Hi Perry,

Unfortunately they're not present:

=============norminal freq===============================
cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/nominal_freq': No such file or directory
=============norminal perf===============================
cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/nominal_perf': No such file or directory
=============highest_perf perf===============================
cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/highest_perf': No such file or directory
=============lowest_nonlinear_perf perf===============================
cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/lowest_nonlinear_perf': No such file or directory
=============lowest perf===============================
cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/lowest_perf': No such file or directory

But I guess this is expected as the driver still does not load with linux kernel 6.7.0 rc2:

[    0.640246] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled

But if you look in ssdt7.dsl from the attachment I just posted, you can clearly see the _CPC entries are present.
They look like:

        Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
        {
            0x17, 
            0x03,
            ....
Comment 11 Perry Yuan(AMD) 2023-11-22 09:25:55 UTC
(In reply to Gino Badouri from comment #10)
> Hi Perry,
> 
> Unfortunately they're not present:
> 
> =============norminal freq===============================
> cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/nominal_freq': No such file or
> directory
> =============norminal perf===============================
> cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/nominal_perf': No such file or
> directory
> =============highest_perf perf===============================
> cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/highest_perf': No such file or
> directory
> =============lowest_nonlinear_perf perf===============================
> cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/lowest_nonlinear_perf': No such
> file or directory
> =============lowest perf===============================
> cat: '/sys/devices/system/cpu/cpu*/acpi_cppc/lowest_perf': No such file or
> directory
> 
> But I guess this is expected as the driver still does not load with linux
> kernel 6.7.0 rc2:
> 
> [    0.640246] amd_pstate: the _CPC object is not present in SBIOS or ACPI
> disabled
> 
> But if you look in ssdt7.dsl from the attachment I just posted, you can
> clearly see the _CPC entries are present.
> They look like:
> 
>         Name (_CPC, Package (0x17)  // _CPC: Continuous Performance Control
>         {
>             0x17, 
>             0x03,
>             ....

Yeah, I saw that, looks like the table is not defined correctly.
The values offset are all zero, let me check with internal team to see if how can we fix that if the table has problem.


Package
{
   NumEntries,                              // Integer
   Revision,                                // Integer
   HighestPerformance,                      // Integer or Buffer (Resource Descriptor)
   NominalPerformance,                      // Integer or Buffer (Resource Descriptor)
   LowestNonlinearPerformance,              // Integer or Buffer (Resource Descriptor)
   LowestPerformance,                       // Integer or Buffer (Resource Descriptor)
   GuaranteedPerformanceRegister,           // Buffer (Resource Descriptor)
   DesiredPerformanceRegister ,             // Buffer (Resource Descriptor)
   MinimumPerformanceRegister ,             // Buffer (Resource Descriptor)
   MaximumPerformanceRegister ,             // Buffer (Resource Descriptor)
   PerformanceReductionToleranceRegister,   // Buffer (Resource Descriptor)
   TimeWindowRegister,                      // Buffer (Resource Descriptor)
   CounterWraparoundTime,                   // Integer or Buffer (Resource Descriptor)
   ReferencePerformanceCounterRegister,     // Buffer (Resource Descriptor)
   DeliveredPerformanceCounterRegister,     // Buffer (Resource Descriptor)
   PerformanceLimitedRegister,              // Buffer (Resource Descriptor)
   CPPCEnableRegister                       // Buffer (Resource Descriptor)
   AutonomousSelectionEnable,               // Integer or Buffer (Resource Descriptor)
   AutonomousActivityWindowRegister,        // Buffer (Resource Descriptor)
   EnergyPerformancePreferenceRegister,     // Buffer (Resource Descriptor)
   ReferencePerformance                     // Integer or Buffer (Resource Descriptor)
   LowestFrequency,                         // Integer or Buffer (Resource Descriptor)
   NominalFrequency                         // Integer or Buffer (Resource Descriptor)
}
Comment 12 Gino Badouri 2023-11-23 07:57:07 UTC
Thanks, if there is any other information I can provide or if you'd like me to try/test something then please let me know.
Comment 13 Gino Badouri 2023-12-01 12:28:56 UTC
Hi Perry,

A little offtopic I guess, but are you saying the acpi table is not complete or correct?
Because when I tried Ryzen Master software on Windows a while ago, it was able to gather all of the performance metrics.
Does it rely on the acpi tables as well? Or does it use a different method/interface for getting the information?
Comment 14 Perry Yuan(AMD) 2023-12-04 05:31:58 UTC
(In reply to Gino Badouri from comment #13)
> Hi Perry,
> 
> A little offtopic I guess, but are you saying the acpi table is not complete
> or correct?
> Because when I tried Ryzen Master software on Windows a while ago, it was
> able to gather all of the performance metrics.
> Does it rely on the acpi tables as well? Or does it use a different
> method/interface for getting the information?

Hi Gino, I was told that you can try the latest BIOS and check the CPPC function again, if the CPPC is still not working, you need to reach out to the board vendor for technical support, it is a BIOS issue, driver side can do nothing for this.

Perry.
Comment 15 Pedro Nascimento 2023-12-04 05:55:59 UTC
Hey folks,

I hope this does not become spammy, but I have a Gigabyte TRX40 AORUS PRO WIFI (rev. 1.0) and a 3970X CPU. Is it a problem across all mobo vendors? As you can see from Gino's links in comment #3, we have at least three different mobos from Asus and Gigabyte reporting the same issue.
Comment 16 Perry Yuan(AMD) 2023-12-04 08:30:39 UTC
Yes, I understand that there are some different vendors shipping the same CPU model, however the BIOS releases are from those vendors support, I confirmed that the CPPC spec mentioned the CPU can support CPPC interface, and it depends on those board vendors feature scopes as well.

from Gino: 
> I have the following in: Advanced > AMD CBS > NBIO Common Options > SMU
> Common Options
> 
> CPPC (Auto / Enabled / Disabled): Enabled
> CPPC Preferred Cores: Enabled

Gino said that he can see the CPPC options in the BIOS setting, I would say it is very probably a BIOS issue need to be fixed by vendors. 

Perry.
Comment 17 Gino Badouri 2023-12-04 08:45:00 UTC
Thank you Perry,

I'll contact Asus support and see if they can do anything about it.
For other users having the same issue.
Please make sure you have CPPC and CPPC Preferred Cores enabled in the bios settings.
You should be able to find it somewhere in the advanced settings under:
AMD CBS > NBIO Common Options > SMU

Also please share your ACPI tables, so the developers can verify them:

fedora/redhat:
dnf install acpica-tools

debian/ubuntu:
apt update
apt install acpica-tools

how to dump your tables:
acpidump > acpidump.out
acpixtract -a acpidump.out
iasl *.dat
zip -9 acpi_tables.zip *.dsl

Then please attach your acpi_tables.zip to this bug report and share your mainboard vendor/model and bios version.
Comment 18 Perry Yuan(AMD) 2023-12-04 09:43:27 UTC
 (In reply to Gino Badouri from comment #17)
> Thank you Perry,
> 
> I'll contact Asus support and see if they can do anything about it.
> For other users having the same issue.
> Please make sure you have CPPC and CPPC Preferred Cores enabled in the bios
> settings.
> You should be able to find it somewhere in the advanced settings under:
> AMD CBS > NBIO Common Options > SMU
> 
> Also please share your ACPI tables, so the developers can verify them:
> 
> fedora/redhat:
> dnf install acpica-tools
> 
> debian/ubuntu:
> apt update
> apt install acpica-tools
> 
> how to dump your tables:
> acpidump > acpidump.out
> acpixtract -a acpidump.out
> iasl *.dat
> zip -9 acpi_tables.zip *.dsl
> 
> Then please attach your acpi_tables.zip to this bug report and share your
> mainboard vendor/model and bios version.

thank you Gino as well, let's know if you have any questions on this. 
You can check the CPPC table with vendor if they confirm the CPPC is supported on the board.
Comment 19 Mithat 2023-12-07 05:52:32 UTC
Hello Everyone,

I dunno if its relevant but my observations regarding the problem are:

As far as I understand, AMD CPUs declares CPPC via CPUID intruction.

1) cpuid 0x80000008 (ebx) CPPC bit is always 0 (disabled) whether you enable or disable CPPC in BIOS.

2) Asus AMI Bios does not have _OSC declaration for CPPC support in DSDT and SSDT tables.

3) There exists _CPC declarations in a SSDT table but since CPPC support is not declared, it is omitted by Linux kernel ?

Hence, amd_pstate module declares "the _CPC object is not present in SBIOS or ACPI disabled" ?

Hope it helps.

Mithat
Comment 20 Jan Kosterec 2023-12-15 11:25:02 UTC
Created attachment 305606 [details]
Gigabyte TRX40 DESIGNARE BIOS v. FD TR 3970X

Hi, attaching my report with acpitables:

$ sudo inxi -F
Machine:
Type: Desktop System: Gigabyte product: TRX40 DESIGNARE v: -CF serial: N/A
Mobo: Gigabyte model: TRX40 DESIGNARE serial: N/A UEFI: American Megatrends LLC. v: FD
date: 09/07/2022
CPU:
Info: 32-core model: AMD Ryzen Threadripper 3970X bits: 64 type: MT MCP cache: L2: 16 MiB
Speed (MHz): avg: 2251 min/max: 2200/3700

$ sudo dmesg | grep amd_pstate
[    2.189961] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled

CPPC settings enabled in bios
Comment 21 Gino Badouri 2023-12-15 11:46:46 UTC
Thank you Jan,

I hope this gives the developers some more information to digest.
I've reached out to Asus with a full report and a link to this thread.
However I doubt they'll look into it, as the sTRX40 platform is discontinued.
I'm not export on ACPI tables at all, but I'm wondering whether it's the mainboard vendor to blame for this.
I believe the "AGESA" firmware which is part of the bios is responsible for setting up CPPC.
And this firmware is provided by AMD to the mainboard vendors.
For sTRX40 (which only lasted one generation), the latest version seems to be 1.0.0.4.
Perhaps this version is too old and doesn't provide the necessary info/specification for the ACPI tables.
Comment 22 Pedro Nascimento 2023-12-30 03:28:22 UTC
Created attachment 305671 [details]
ACPI dump for Gigabyte TRX40 AORUS PRO WIFI with a 3970X TR

Here's mine. Note that this is a Gigabyte mobo.

Machine:
Type: Desktop System: Gigabyte product: TRX40 AORUS PRO WIFI v: -CF serial: N/A
Mobo: Gigabyte model: TRX40 AORUS PRO WIFI serial: N/A UEFI: American Megatrends LLC. v: F6
date: 09/07/2022
CPU:
Info: 32-core model: AMD Ryzen Threadripper 3970X bits: 64 type: MT MCP cache: L2: 16 MiB
Comment 23 Perry Yuan(AMD) 2024-01-02 03:23:32 UTC
(In reply to Pedro Nascimento from comment #22)
> Created attachment 305671 [details]
> ACPI dump for Gigabyte TRX40 AORUS PRO WIFI with a 3970X TR
> 
> Here's mine. Note that this is a Gigabyte mobo.
> 
> Machine:
> Type: Desktop System: Gigabyte product: TRX40 AORUS PRO WIFI v: -CF serial:
> N/A
> Mobo: Gigabyte model: TRX40 AORUS PRO WIFI serial: N/A UEFI: American
> Megatrends LLC. v: F6
> date: 09/07/2022
> CPU:
> Info: 32-core model: AMD Ryzen Threadripper 3970X bits: 64 type: MT MCP
> cache: L2: 16 MiB

Hi Pedro, 

The BIOS and some PM firmware are shipped from board vendors, I can see the pstate driver can work well with our CRB board, but the final BIOS release comes from vendor, If you would like to get CPPC work on your board, I would suggest that you request support from board vendor.
Comment 24 Alessio Di Sandro 2024-01-16 22:27:08 UTC
Created attachment 305722 [details]
ACPI tables for TR 3970X on MSI Creator TRX40
Comment 25 Alessio Di Sandro 2024-01-16 22:33:36 UTC
Comment on attachment 305722 [details]
ACPI tables for TR 3970X on MSI Creator TRX40

Same behaviour on a MSI Creator TRX40, TR 3970X, BIOS version 7C59v17 (latest), CPPC options enabled in the BIOS, Linux 6.6.11.

It may very well be the board vendors being lazy, but it seems a bit fishy that ALL of them have the same CPPC problem. With my MSI report, aren't these the entirety of the TRX40 boards?
Comment 26 Perry Yuan(AMD) 2024-01-17 03:12:41 UTC
(In reply to Alessio Di Sandro from comment #25)
> Comment on attachment 305722 [details]
> ACPI tables for TR 3970X on MSI Creator TRX40
> 
> Same behaviour on a MSI Creator TRX40, TR 3970X, BIOS version 7C59v17
> (latest), CPPC options enabled in the BIOS, Linux 6.6.11.
> 
> It may very well be the board vendors being lazy, but it seems a bit fishy
> that ALL of them have the same CPPC problem. With my MSI report, aren't
> these the entirety of the TRX40 boards?

thanks for the more information, please also submit ticket to board vendor to request the issue fix, looks like the Bit Offset values are not correctly initialized. 


   ResourceTemplate ()
            {
                Register (PCC,
                    0x20,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000000, // Address
                    ,)
            },

            ResourceTemplate ()
            {
                Register (PCC,
                    0x20,               // Bit Width
                    0x00,               // Bit Offset
                    0x0000000000000004, // Address
                    ,)
            },

 Perry.
Comment 27 Pedro Nascimento 2024-01-17 16:24:52 UTC
Hey Perry,

Thank you for sharing your insights.

Given the issue is spread across MSI, Asus and Gigabyte, I'm concerned we will never get around to convincing a fix should come from each of them.

Is it something you, as an AMD employee, could help with? Or is it possible to work around this at the driver level? Otherwise, I fear this will never be fixed.
Comment 28 Gino Badouri 2024-01-17 21:42:26 UTC
An update regarding my Asus ROG Zenith II Extreme motherboard.

I've opened up a support case at Asus.
In order to do so I had to register my motherboard's serial number which is a bit cumbersome if you don't have the original box as it's written on the motherboard itself and you cannot get it from the bios info.

So in my report I've described the issue where I have CPPC and CPPC Preferred Core enabled and the amd-pstate driver not loading due to missing _CPC objects inside the ACPI tables.

They got back to me and asked me to record a video of the problem.
So I sent them a short video, showing that I have the options enabled in the bios, booting the Linux OS and finally logging in using SSH and showing the amd-pstate error message.

Yesterday I got a message that they are working together with AMD to find a solution.

I don't have high expectations that this problem gets sorted out, given that they've updated the bios several times (last update is 6 months old), without even trying to ship the latest AGESA.

But as they are at least talking with AMD, I urge everybody to open a support case at their motherboard vendor.
The more reports, the greater the chance that either your vendor and/or AMD is going to take it serious.

Just my 2cents.
Comment 29 Gino Badouri 2024-01-17 21:49:50 UTC
Also in my report to Asus, I've mentioned the URL to this bugzilla page in the and told them it's very important to read it for more technical information.
So if you're going to open a support case to your motherboard vendor, please mention this URL as well: https://bugzilla.kernel.org/show_bug.cgi?id=218171
Comment 30 Perry Yuan(AMD) 2024-01-18 06:30:26 UTC
FYI, I have been checking the issue with our internal team because of more users like you are expecting to get fix solution, I will try my test to find out any workable solutions for you.
Once I got progress for this, I will update here, stay tuned.
Comment 31 Pedro Nascimento 2024-01-18 22:46:45 UTC
Thank you, Gino and Perry. I've opened a ticket with Gigabyte as recommended.
Comment 32 Alessio Di Sandro 2024-01-22 22:08:11 UTC
I have investigated a bit what happens on the Windows (dark) side, and it looks like CPPC is active and used by the OS (same MSI motherboard and bios with dual boot).

HWiNFO shows the list of cores in CPPC order, and by monitoring clocks core 21 is indeed the one that can clock the highest.

Windows Event Viewer agrees, showing ACPI CPPC being used (performance state type) and core 40 the one with the highest maximum performance percentage (numbering starts from 0 here and considers SMT cores too, while hwinfo starts from 1, so that cores 40/41 in the viewer is core 21 in hwinfo). All the other maximum performance percentage values agree with hwinfo's CPPC order.
Comment 33 Alessio Di Sandro 2024-01-22 22:09:08 UTC
Created attachment 305746 [details]
HWiNFO CPPC order in Windows
Comment 34 Alessio Di Sandro 2024-01-22 22:10:08 UTC
Created attachment 305747 [details]
Windows Event Viewer CPPC log
Comment 35 Perry Yuan(AMD) 2024-01-25 06:17:41 UTC
Created attachment 305776 [details]
patch to enable amd psate driver for Family 17H

Hi all,
Please try this patch on your system, I would like to see if the system BIOS still looking for some other fixes. 

I am not sure if the pstate driver can be loaded successfully on your system with this patch, if CPPC capabilities missing on your system, we still add some other fixes on for the broken BIOS. 

after you build and boot your system,
please help to provide below info to me to check the driver status.

# sudo dmidecode -t system
# sudo cpupower frequency-info

echo "=============norminal freq==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/nominal_freq

echo "=============norminal perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/nominal_perf

echo "=============highest_perf perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/highest_perf

echo "=============lowest_nonlinear_perf perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/lowest_nonlinear_perf

echo "=============lowest perf==============================="
cat /sys/devices/system/cpu/cpu*/acpi_cppc/lowest_perf




Perry.
Comment 36 Mithat 2024-01-25 09:21:25 UTC
Hi Perry,

It worked for me on Fedora 39. Thank you and AMD team for the support.

# sudo dmidecode -t system

# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: ASUS
	Product Name: System Product Name
	Version: System Version
	Serial Number: System Serial Number
	UUID: fd469375-3c63-da50-47f3-a85e45cd44c4
	Wake-up Type: Power Switch
	SKU Number: SKU
	Family: To be filled by O.E.M.

Handle 0x002E, DMI type 12, 5 bytes
System Configuration Options
	Option 1: Default string

Handle 0x002F, DMI type 32, 20 bytes
System Boot Information
	Status: No errors detected

# sudo cpupower frequency-info

analyzing CPU 20:
  driver: amd-pstate-epp
  CPUs which run at the same hardware frequency: 20
  CPUs which need to have their frequency coordinated by software: 20
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 550 MHz - 4.57 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 550 MHz and 4.57 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.68 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.57 GHz.
    AMD PSTATE Nominal Performance: 138. Nominal Frequency: 3.80 GHz.
    AMD PSTATE Lowest Non-linear Performance: 64. Lowest Non-linear Frequency: 1.76 GHz.
    AMD PSTATE Lowest Performance: 21. Lowest Frequency: 550 MHz.

=============norminal freq===============================
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801

=============norminal perf===============================
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138
138

=============highest_perf perf===============================
231
166
166
241
236
241
201
196
191
186
181
226
176
171
166
166
231
226
221
216
211
206
221
166
166
166
166
166
166
241
236
241
201
216
196
191
186
181
176
171
166
166
211
206
166
166
166
166

=============lowest_nonlinear_perf perf===============================
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64

=============lowest perf===============================
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21

# PCC bits are not zero anymore.
# sudo hexdump -C --skip 0xBA6D0000 /dev/mem | head

ba6d0000  00 43 43 50 00 00 01 00  e7 00 00 00 8a 00 00 00  |.CCP............|
ba6d0010  40 00 00 00 15 00 00 00  00 00 00 00 00 00 00 00  |@...............|
ba6d0020  15 00 00 00 e7 00 00 00  00 00 00 00 00 00 00 00  |................|
ba6d0030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
ba6d0040  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
ba6d0050  01 00 00 00 00 00 00 00  80 00 00 00 00 00 00 00  |................|
ba6d0060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
Comment 37 Gino Badouri 2024-01-25 12:25:58 UTC
Hi there Perry,

Thanks again for looking into this, here are my results:

Kernel: 6.8.0-rc1 vanilla + your patch
Mainboard: Asus ROG Zenith II Extreme (sTRX40)
CPU: AMD Threadripper 3960X
Bios: 1802 (06/09/2023) CPPC and CPPC Preferred Core enabled
Kernel command line: amd_pstate=active


# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: ASUS
	Product Name: System Product Name
	Version: System Version
	Serial Number: System Serial Number
	UUID: ebcd3b7e-9734-32f6-6752-3497f631a402
	Wake-up Type: Power Switch
	SKU Number: SKU
	Family: To be filled by O.E.M.

Handle 0x003E, DMI type 12, 5 bytes
System Configuration Options
	Option 1: Default string

Handle 0x003F, DMI type 32, 20 bytes
System Boot Information
	Status: No errors detected


# cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate-epp
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 550 MHz - 4.78 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 550 MHz and 4.78 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.58 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    Boost States: 0
    Total States: 3
    Pstate-P0:  3800MHz
    Pstate-P1:  2800MHz
    Pstate-P2:  2200MHz


=============norminal freq===============================
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
=============norminal perf===============================
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
=============highest_perf perf===============================
231
166
166
201
196
191
241
241
236
166
166
226
166
166
166
166
231
226
221
216
211
206
221
186
181
176
171
166
166
201
196
191
241
216
241
236
166
166
166
166
166
166
211
206
186
181
176
171
=============lowest_nonlinear_perf perf===============================
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
=============lowest perf===============================
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20


If you like, I can also redo the same tests with guided and/or passive modes.
Comment 38 Gino Badouri 2024-01-25 14:39:19 UTC
Here's the information with amd-pstate in guided mode:

Kernel: 6.8.0-rc1 vanilla + your patch
Mainboard: Asus ROG Zenith II Extreme (sTRX40)
CPU: AMD Threadripper 3960X
Bios: 1802 (06/09/2023) CPPC and CPPC Preferred Core enabled
Kernel command line: amd_pstate=guided


# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: ASUS
	Product Name: System Product Name
	Version: System Version
	Serial Number: System Serial Number
	UUID: ebcd3b7e-9734-32f6-6752-3497f631a402
	Wake-up Type: Power Switch
	SKU Number: SKU
	Family: To be filled by O.E.M.

Handle 0x003E, DMI type 12, 5 bytes
System Configuration Options
	Option 1: Default string

Handle 0x003F, DMI type 32, 20 bytes
System Boot Information
	Status: No errors detected


# cpupower frequency-info
analyzing CPU 0:
  driver: amd-pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 20.0 us
  hardware limits: 550 MHz - 4.78 GHz
  available cpufreq governors: conservative ondemand userspace powersave performance schedutil
  current policy: frequency should be within 550 MHz and 4.78 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 4.39 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.78 GHz.
    AMD PSTATE Nominal Performance: 132. Nominal Frequency: 3.80 GHz.
    AMD PSTATE Lowest Non-linear Performance: 60. Lowest Non-linear Frequency: 1.73 GHz.
    AMD PSTATE Lowest Performance: 20. Lowest Frequency: 550 MHz.


=============norminal freq===============================
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
3801
=============norminal perf===============================
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
132
=============highest_perf perf===============================
231
166
166
201
196
191
241
241
236
166
166
226
166
166
166
166
231
226
221
216
211
206
221
186
181
176
171
166
166
201
196
191
241
216
241
236
166
166
166
166
166
166
211
206
186
181
176
171
=============lowest_nonlinear_perf perf===============================
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
=============lowest perf===============================
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
Comment 39 Pedro Nascimento 2024-01-25 18:41:20 UTC
Happy to report it is also working on mine.

# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.3.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: Gigabyte Technology Co., Ltd.
	Product Name: TRX40 AORUS PRO WIFI
	Version: -CF
	Serial Number: Default string
	UUID: 032e02b4-0499-05fa-cd06-fd0700080009
	Wake-up Type: Power Switch
	SKU Number: Default string
	Family: Default string

Handle 0x0006, DMI type 12, 5 bytes
System Configuration Options
	Option 1: Default string

Handle 0x0007, DMI type 32, 20 bytes
System Boot Information
	Status: No errors detected

analyzing CPU 0:
  driver: amd-pstate-epp
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 550 MHz - 4.55 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 550 MHz and 4.55 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 550 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    Boost States: 0
    Total States: 3
    Pstate-P0:  3700MHz
    Pstate-P1:  2800MHz
    Pstate-P2:  2200MHz
=============norminal freq===============================
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
3701
=============norminal perf===============================
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
135
=============highest_perf perf===============================
166
216
211
206
201
196
191
241
241
236
231
166
166
166
166
166
186
181
176
171
166
166
166
166
166
166
166
166
166
166
166
166
166
166
226
221
216
211
206
201
196
191
241
241
166
236
231
166
166
166
166
186
181
176
171
166
166
166
166
166
166
166
226
221
=============lowest_nonlinear_perf perf===============================
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
=============lowest perf===============================
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
Comment 40 Perry Yuan(AMD) 2024-01-26 04:33:55 UTC
Thank you everyone for the testing results!!

Because of the TR40 CPU hardware pstate was implemented by CPPC V2 and shared memory design(PCC channel), so the ACPI table is not same as MSR solution. it is expected after I confirmed with internal team. 

   ResourceTemplate ()
            {
                Register (PCC,
                    0x20,               // Bit Width
                    0x00,               // Bit Offset --> expected
                    0x0000000000000000, // Address
                    ,)
            },

Looks like all the CPPC capabilities on above tested systems are filled correctly.
I will post the patch for kernel review. 
Let me know if you have any other questions about this issue. 

Perry.
Comment 41 Jan Kosterec 2024-01-26 16:36:58 UTC
This is grat news. Working flawlessly on:
Gigabyte TRX40 DESIGNARE
AMD Ryzen Threadripper 3970X

Tried it on 6.6.14, amd-pstate=active (can't use 6.7 yet) and it works great. Temperatures are lower while performance is better.

cpupower frequency-info
analyzing CPU 10:
driver: amd-pstate-epp
CPUs which run at the same hardware frequency: 10
CPUs which need to have their frequency coordinated by software: 10
maximum transition latency:  Cannot determine or is not supported.
hardware limits: 550 MHz - 4.55 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 550 MHz and 4.55 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 4.32 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.55 GHz.
AMD PSTATE Nominal Performance: 135. Nominal Frequency: 3.70 GHz.
AMD PSTATE Lowest Non-linear Performance: 64. Lowest Non-linear Frequency: 1.75 GHz.
AMD PSTATE Lowest Performance: 21. Lowest Frequency: 550 MHz.
Comment 42 Gino Badouri 2024-02-01 19:34:36 UTC
Dear Perry Yuan,

Thanks again for looking into this issue and making the pstate driver compatible.

https://www.phoronix.com/news/AMD-P-State-Threadripper-3000
Comment 43 Perry Yuan(AMD) 2024-02-02 14:28:59 UTC
(In reply to Gino Badouri from comment #42)
> Dear Perry Yuan,
> 
> Thanks again for looking into this issue and making the pstate driver
> compatible.
> 
> https://www.phoronix.com/news/AMD-P-State-Threadripper-3000

You are welcome, glad to see more and more users are using AMD Pstate driver and provide feedback to improve the driver compatibility. 

https://lore.kernel.org/all/cover.1706863981.git.perry.yuan@amd.com/

The patches have been sent to upstream for reviewing. 

If possible, please help to add test-by flag to the series.
Thank you all!


Perry.
Comment 44 Gil Vicente B. 2024-02-04 14:08:19 UTC
For all of you, Thank you very much!

Awesome work! 

All good on:

kernel: 6.7.3-zen1-2-zen
ROG ZENITH II EXTREME (v1802)
AMD Ryzen Threadripper 3970X 

driver: amd-pstate-epp
  CPUs que rodam na mesma frequência de hardware: 63
  CPUs que precisam ter suas frequências coordenadas por software: 63
  maior latência de transição:  Cannot determine or is not supported.
  limites do hardware: 550 MHz - 4.65 GHz
  reguladores do cpufreq disponíveis: performance powersave
  política de frequência atual deve estar entre 3.70 GHz e 4.50 GHz.
                  O regulador "performance" deve decidir qual velocidade usar
                  dentro desse limite.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 4.22 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
    AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.65 GHz.
    AMD PSTATE Nominal Performance: 132. Nominal Frequency: 3.70 GHz.
    AMD PSTATE Lowest Non-linear Performance: 62. Lowest Non-linear Frequency: 1.73 GHz.
    AMD PSTATE Lowest Performance: 20. Lowest Frequency: 550 MHz.
Comment 45 Vishal Rao 2024-03-10 15:33:13 UTC
Hello,

Is this the right place to request this bugfix be backported to the 6.8 series?

Phoronix says it's coming to 6.9 here: https://www.phoronix.com/news/AMD-P-State-TRX40-Linux-6.9

I've filed a wishlist bug report to ubuntu for the 24.04 LTS release which will carry 6.8 to start with, apparently: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2056686

Regards.
Comment 46 Perry Yuan(AMD) 2024-03-22 07:38:56 UTC
(In reply to Vishal Rao from comment #45)
> Hello,
> 
> Is this the right place to request this bugfix be backported to the 6.8
> series?
> 
> Phoronix says it's coming to 6.9 here:
> https://www.phoronix.com/news/AMD-P-State-TRX40-Linux-6.9
> 
> I've filed a wishlist bug report to ubuntu for the 24.04 LTS release which
> will carry 6.8 to start with, apparently:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2056686
> 
> Regards.

The fix patches are under review and close to merge.

https://lore.kernel.org/lkml/CYYPR12MB86558EBCB812D171DAC34C759C312@CYYPR12MB8655.namprd12.prod.outlook.com/

Perry.
Comment 47 Perry Yuan(AMD) 2024-03-25 02:28:53 UTC
https://lore.kernel.org/lkml/20240324230116.1348576-289-sashal@kernel.org/

The fix patch has been merged and backport to stable kernel.