Bug 219044

Summary: cppc_acpi fails to detect _CPC support
Product: ACPI Reporter: Nicolas Granger (nicolas.granger.m)
Component: Power-ProcessorAssignee: acpi_power-processor
Status: RESOLVED DUPLICATE    
Severity: normal CC: Perry.Yuan, xiaojian.du
Priority: P3    
Hardware: AMD   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Attachments: attachment-21460-0.html

Description Nicolas Granger 2024-07-15 21:20:33 UTC
acpi_cppc seems to fail to detect _CPC support on Lenovo Yoga Pro 7 14AHP9. This causes linux to fall back to acpi pstate by default or to discard epp support if amd_pstate=active is passed on the cmdline.

When booting with "amd_pstate=active amd_pstate.dyndbg=+p cppc_acpi.dyndbg=+p debug" on the command line, dmesg[1] contains the following lines about CPC:

[    0.437698] ACPI CPPC: Parsed CPC struct for CPU: 0
...
[    0.502121] ACPI CPPC: _CPC in PCC is not supported

On windows, the hwinfo tool mentions CPPC support (the interface is confusing, I can launch it again with guidance on what to look for). It also reports the CPU core frequencies go as low as 1GHz with a high percentage in C6 state. On linux, acpi pstate can only reach 1.6GHz minimum, with amd_pstate=active, `cpupower monitor` reports frequencies above 2GHz.

In the ACPI tables[2], _CPC entries are present[3].

The bios changelog[4] mentions "1.Follow AMD's suggest, Disabling DVFS temporarily to mitigate the BSOD on UUT with Micron memory." which is unclear to me.


System information:

- Laptop model: Lenovo Yoga Pro 7 14AHP9
- BIOS version: 1.16 (NCCN16WW 02/02/2024)
- Processor:    AMD Ryzen 7 8845HS 
- Kernel:       6.9.8 (Arch linux)

[1] https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-dmesg
[2] https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-acpidump
[3] https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-ssdt11-dsl-L380
[4] https://download.lenovo.com/consumer/mobiles/nccn16ww.txt
Comment 1 Perry Yuan(AMD) 2024-07-16 02:54:27 UTC
Hi Nicolas,

8945HS & 8845HS looks are the same Zen 4 (Hawk Point) family.
But you can confirm with below commands. 

sudo rdmsr 0xc00102b3 -a
sudo rdmsr 0xc00102b0 -a
sudo rdmsr 0xc00102b1 -a
sudo cpuid -l 0x80000008 -r   # check Fn80000008_EBX bit27[CPPC] = 0 or 1, if you got 0, that means CPPC is disabled on your system.


Perry.
Comment 2 xiaojian.du 2024-07-16 04:23:19 UTC
(In reply to Nicolas Granger from comment #0)
> acpi_cppc seems to fail to detect _CPC support on Lenovo Yoga Pro 7 14AHP9.
> This causes linux to fall back to acpi pstate by default or to discard epp
> support if amd_pstate=active is passed on the cmdline.
> 
> When booting with "amd_pstate=active amd_pstate.dyndbg=+p
> cppc_acpi.dyndbg=+p debug" on the command line, dmesg[1] contains the
> following lines about CPC:
> 
> [    0.437698] ACPI CPPC: Parsed CPC struct for CPU: 0
> ...
> [    0.502121] ACPI CPPC: _CPC in PCC is not supported
> 
> On windows, the hwinfo tool mentions CPPC support (the interface is
> confusing, I can launch it again with guidance on what to look for). It also
> reports the CPU core frequencies go as low as 1GHz with a high percentage in
> C6 state. On linux, acpi pstate can only reach 1.6GHz minimum, with
> amd_pstate=active, `cpupower monitor` reports frequencies above 2GHz.
> 
> In the ACPI tables[2], _CPC entries are present[3].
> 
> The bios changelog[4] mentions "1.Follow AMD's suggest, Disabling DVFS
> temporarily to mitigate the BSOD on UUT with Micron memory." which is
> unclear to me.
> 

This change is related to memory, not cpu freq.

> 
> System information:
> 
> - Laptop model: Lenovo Yoga Pro 7 14AHP9
> - BIOS version: 1.16 (NCCN16WW 02/02/2024)
> - Processor:    AMD Ryzen 7 8845HS 
> - Kernel:       6.9.8 (Arch linux)
> 
> [1]
> https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-dmesg
> [2]
> https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-
> acpidump
> [3]
> https://gist.github.com/nlgranger/9eae8ea594930e605f22d1ae6ecbf49f#file-
> ssdt11-dsl-L380
> [4] https://download.lenovo.com/consumer/mobiles/nccn16ww.txt
Comment 3 Nicolas Granger 2024-07-16 18:03:46 UTC
Hi Perry,

CPPC seems indeed disabled. Is AMD in contact with vendors to push them to enable it? They make people think AMD CPUs suck in idle power draw.

$ rdmsr 0xc00102b3 -a
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

$ rdmsr 0xc00102b0 -a
dc912a10
dc912a10dc912a10
e2912a10
e2912a10e2912a10
e8912a10
e8912a10e8912a10
d0912a10
d0912a10d0912a10
e8912a10
e8912a10e8912a10
d6912a10
d6912a10d6912a10
c4912a10
c4912a10c4912a10
ca912a10
ca912a10ca912a10

$ rdmsr 0xc00102b1 -a
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

$ cpuid
Leaf     Subleaf    EAX            EBX            ECX            EDX            
80000008 00000000:  00003030 00..  111ef257 W...  0000400f .@..  00010000 ....

$ python -c "print(0x111ef257 & (0x1 << 27))"
0
Comment 4 Perry Yuan(AMD) 2024-07-17 02:37:09 UTC
Created attachment 306576 [details]
attachment-21460-0.html

[AMD Official Use Only - AMD Internal Distribution Only]

Thanks for the confirm.

AMD has released new BIOS to OEMs, however it is really depending on vendor release plan.

You  can submit support case to vendor to speed up the process.



Best regards,

Perry Yuan
________________________________
发件人: bugzilla-daemon@kernel.org <bugzilla-daemon@kernel.org>
发送时间: Wednesday, July 17, 2024 2:03:46 AM
收件人: Yuan, Perry <Perry.Yuan@amd.com>
主题: [Bug 219044] cppc_acpi fails to detect _CPC support

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

--- Comment #3 from Nicolas Granger (nicolas.granger.m@gmail.com) ---
Hi Perry,

CPPC seems indeed disabled. Is AMD in contact with vendors to push them to
enable it? They make people think AMD CPUs suck in idle power draw.

$ rdmsr 0xc00102b3 -a
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

$ rdmsr 0xc00102b0 -a
dc912a10
dc912a10dc912a10
e2912a10
e2912a10e2912a10
e8912a10
e8912a10e8912a10
d0912a10
d0912a10d0912a10
e8912a10
e8912a10e8912a10
d6912a10
d6912a10d6912a10
c4912a10
c4912a10c4912a10
ca912a10
ca912a10ca912a10

$ rdmsr 0xc00102b1 -a
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

$ cpuid
Leaf     Subleaf    EAX            EBX            ECX            EDX
80000008 00000000:  00003030 00..  111ef257 W...  0000400f .@..  00010000 ....

$ python -c "print(0x111ef257 & (0x1 << 27))"
0

--
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.
Comment 5 Nicolas Granger 2024-07-19 08:46:30 UTC

*** This bug has been marked as a duplicate of bug 218686 ***