Pillendreher Posted August 27, 2022 Share Posted August 27, 2022 OK, so I've installed the latest version (Danke @ich777!) and tried registering everything. This is as far as I got: This is what happens when trying to register the Idle driver: This is what the Kernel data looks like: PS: Idle Limit C3? Any way to change that? Also, it looks like the CPU is never quite leaving C1: Anyway, this is the core power draw in idle: And now the CPPC "ranges" are set to auto: Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 @Pillendreher You have to unload or blacklist any drivers ## Boot command line (for a AMD Ryzen 3950X) nmi_watchdog=0 modprobe.blacklist=k10temp,sp5100_tco,acpi_cpufreq amd_pstate.shared_mem=1 idle=halt nowatchdog ## You can also try to unload current ACPI driver modprobe -r acpi-cpufreq ## You can pass Registration and Idle route as parameters insmod corefreqk.ko Idle_Route=1 Register_ClockSource=1 Register_Governor=1 Register_CPU_Freq=1 Register_CPU_Idle=1 ## Or from the UI settings, do all registrations and select again route to "IO" Remarks: ClockSource registration is still a Compilation option; project has to be built as below: make DELAY_TSC=1 UMC Memory Controller channels frequency can be built as below: make ARCH_PMC=UMC And options can be combined: make ARCH_PMC=UMC DELAY_TSC=1 Quote Link to comment
ich777 Posted August 27, 2022 Share Posted August 27, 2022 4 minutes ago, CyrIng said: And options can be combined: Should I change my build script to compile the AMD package with these two options? Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 @Pillendreher Once CPU-Idle registered, you can select other Idle limit. Default limit is a function of Sub C-State provided by architecture Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 2 hours ago, ich777 said: Should I change my build script to compile the AMD package with these two options? DELAY_TSC=1 appears safe, you can include it in your compilation A compilation message will show up to warn that feature is builtin ARCH_PMC=UMC is stable with my 3950X and 5300U but I don't have other reports from other AMDs Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 Examples of UMC monitoring DIMMs are set to 3600 and FCLK to 1800 in BIOS Idle and Loaded cycles of Dual channels CHA0 and CHA1 Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 If Clock Source is not mastered by CoreFreq, you can select it from Kernel window: Quote Link to comment
ich777 Posted August 27, 2022 Share Posted August 27, 2022 27 minutes ago, CyrIng said: DELAY_TSC=1 appears safe, you can include it in your compilation Then I will integrate only this option for now... 1 Quote Link to comment
Pillendreher Posted August 27, 2022 Share Posted August 27, 2022 4 hours ago, CyrIng said: @Pillendreher You have to unload or blacklist any drivers ## Boot command line (for a AMD Ryzen 3950X) nmi_watchdog=0 modprobe.blacklist=k10temp,sp5100_tco,acpi_cpufreq amd_pstate.shared_mem=1 idle=halt nowatchdog ## You can also try to unload current ACPI driver modprobe -r acpi-cpufreq ## You can pass Registration and Idle route as parameters insmod corefreqk.ko Idle_Route=1 Register_ClockSource=1 Register_Governor=1 Register_CPU_Freq=1 Register_CPU_Idle=1 ## Or from the UI settings, do all registrations and select again route to "IO" Remarks: ClockSource registration is still a Compilation option; project has to be built as below: make DELAY_TSC=1 UMC Memory Controller channels frequency can be built as below: make ARCH_PMC=UMC And options can be combined: make ARCH_PMC=UMC DELAY_TSC=1 OK, so the first line (with a "modprobe amd-pstate" attached to it) lets me register the Idle-driver. Yet now I can't register the freq-driver: Quote Link to comment
Pillendreher Posted August 27, 2022 Share Posted August 27, 2022 4 hours ago, CyrIng said: @Pillendreher Once CPU-Idle registered, you can select other Idle limit. Default limit is a function of Sub C-State provided by architecture I can go all the way down to C6 now actually: And the frequency dashboard actually shows the cores reaching C6: Powerdraw is basically identical though compared to the previous configuration: Quote Link to comment
CyrIng Posted August 27, 2022 Share Posted August 27, 2022 3 hours ago, Pillendreher said: ... Powerdraw is basically identical though compared to the previous configuration: Unfortunately, no hardware counter registers specified with AMD Zen. CoreFreq is thus making virtual counter VPMC per idle level entry. Using 3950X, I have noticed a Package power consumed difference between I/O-WAIT and MWAIT. That's why I/O or HALT is default idle asm instruction suggested in [Settings][CPU-IDLE route] In [Performance Monitoring] window PC6 and CC6 are making a Power difference. In [Power, Current & Thermal] window, when [Settings][HSMP enablement] can be enabled, [Thermal Design Power] can be altered. With 3950X, I can't programmed better than Minus/Plus 5 watts You may also cap the Core frequency (press [!] for Absolute monitoring); enable CPPC and decrease the target [TGT] ratio. With 3950X where CPPC is a firmware implementation, I'm observing a Core Power decreased Quote Link to comment
Pillendreher Posted August 28, 2022 Share Posted August 28, 2022 9 hours ago, CyrIng said: Unfortunately, no hardware counter registers specified with AMD Zen. CoreFreq is thus making virtual counter VPMC per idle level entry. Which means? Is something missing in my UEFI settings? 9 hours ago, CyrIng said: Using 3950X, I have noticed a Package power consumed difference between I/O-WAIT and MWAIT. That's why I/O or HALT is default idle asm instruction suggested in [Settings][CPU-IDLE route] I'll give the other options a try. 9 hours ago, CyrIng said: In [Performance Monitoring] window PC6 and CC6 are making a Power difference. Both are already enabled. 9 hours ago, CyrIng said: In [Power, Current & Thermal] window, when [Settings][HSMP enablement] can be enabled, [Thermal Design Power] can be altered. With 3950X, I can't programmed better than Minus/Plus 5 watts Unfortunately, I can't enable "HSMP". It's currently set to "off": Yet when I try to enable it, nothing happens: And the CPU-Freq driver still can't be enabled either: 9 hours ago, CyrIng said: You may also cap the Core frequency (press [!] for Absolute monitoring); enable CPPC and decrease the target [TGT] ratio. With 3950X where CPPC is a firmware implementation, I'm observing a Core Power decreased I've put it at "1" (99,81 MHz): Compared to what I posted yesterday (7.4 W total), I'm now at 4,74 W total in this screenshot - nice improvement PS: What is "absolute frequency" in this setting? It's much higher than the accumulated cores' frequencies? Quote Link to comment
CyrIng Posted August 28, 2022 Share Posted August 28, 2022 Hardware counters: I mean registers like Intel MSR which counts number of cycles elapsed per C-states AMD does not provide information about such registers. NDA or no will. All Zen impacted. My workaround has been to hook kernel idle entries to estimate the cycles delay, from TSC, spent in idle level. 1 Quote Link to comment
CyrIng Posted August 28, 2022 Share Posted August 28, 2022 (edited) Relative frequency is a usage, delta of cycles over a sample period : 1 second Absolute frequency is an immediate reading of current frequency which is made once per period. Indeed absolute mode is the way to get true frequency, especially when system is loaded whereas relative can measure the tiny variations of GHz processors. Relative frequency is the Intel recommandation. Edited August 28, 2022 by CyrIng 1 Quote Link to comment
CyrIng Posted August 28, 2022 Share Posted August 28, 2022 48 minutes ago, Pillendreher said: I've put it at "1" (99,81 MHz): Very interesting! What did you do exactly to improve the Power consumed ? Quote Link to comment
CyrIng Posted August 28, 2022 Share Posted August 28, 2022 51 minutes ago, Pillendreher said: And the CPU-Freq driver still can't be enabled either: When you reach that issue, give a look to kernel window to get the current driver name. Then try to unload it or blacklist it from boot. When "Missing" is written, it means the room is empty and CoreFreq can register. It's the same for Idle driver. I'm sorry if I can't make easier but Linux kernel was made that eavy way in some part of its code. 1 Quote Link to comment
Pillendreher Posted August 28, 2022 Share Posted August 28, 2022 (edited) 6 hours ago, CyrIng said: When you reach that issue, give a look to kernel window to get the current driver name. Then try to unload it or blacklist it from boot. When "Missing" is written, it means the room is empty and CoreFreq can register. It's the same for Idle driver. I'm sorry if I can't make easier but Linux kernel was made that eavy way in some part of its code. It says that the p-state driver is the current CPU-Freq driver: I'll try not loading it at boot, maybe that will help. EDIT: So now that everything is missing, I can successfully register everything via corefreq (Still can't enable HSMP though): Although now the Governor driver seems to be missing, which - I assume - isn't good. Edited August 28, 2022 by Pillendreher Quote Link to comment
Pillendreher Posted August 28, 2022 Share Posted August 28, 2022 6 hours ago, CyrIng said: Very interesting! What did you do exactly to improve the Power consumed ? Not much. I just enabled C-States in my UEFI, enabled C6 in corefreq and switched the CPPC Target to "1". That's all! Quote Link to comment
CyrIng Posted August 28, 2022 Share Posted August 28, 2022 3 hours ago, Pillendreher said: So now that everything is missing, I can successfully register everything via corefreq (Still can't enable HSMP though): I have found the HSMP protocol into the EPYC datasheet; and probably also the same specs for ThreadRippers. Except some HEDT Deskop Ryzen 3950X, 5950X, I have also noticed that HSMP is not implemented into Ryzen APU, like my laptop 5300U 1 Quote Link to comment
kdwg Posted October 6, 2022 Share Posted October 6, 2022 Ein kleines Update zum Thema: https://www.phoronix.com/news/AMD-P-State-EPP-Linux Quote Link to comment
CyrIng Posted October 6, 2022 Share Posted October 6, 2022 6 hours ago, kdwg said: Ein kleines Update zum Thema: https://www.phoronix.com/news/AMD-P-State-EPP-Linux That indeed will be nice when the EPP patch gets into mainstream, especially: +EXPORT_SYMBOL_GPL(cppc_get_epp_caps); +EXPORT_SYMBOL_GPL(cppc_set_epp_perf); 2 Quote Link to comment
CyrIng Posted October 12, 2022 Share Posted October 12, 2022 On 8/28/2022 at 7:01 PM, CyrIng said: I have found the HSMP protocol into the EPYC datasheet; and probably also the same specs for ThreadRippers. Except some HEDT Deskop Ryzen 3950X, 5950X, I have also noticed that HSMP is not implemented into Ryzen APU, like my laptop 5300U Bad news. Received a laptop 6600H based where Rembrandt has no HSMP, most SMU registers I need for voltage Vcore and UMC memory controller are empty. Fortunately legacy p-state, CPUID, Thermal are still monitoring OK. So far I've not found a registers datasheet of this Zen3+ ... and I fear it may be worst with Zen4 (but no test received) Quote Link to comment
ich777 Posted October 13, 2022 Share Posted October 13, 2022 @Pillendreher gehe ich recht in der Annahme das du deiner syslinux.config das hinzugefügt hast: initcall_blacklist=acpi_cpufreq_init ...und dann noch die Datei: /boot/config/modprobe.d/amd_pstate.conf um den Treiber zu laden? Geht mir nur um die Klarheit für andere User die den amd_pstate Treiber zu aktivieren versuchen. Quote Link to comment
kdwg Posted October 14, 2022 Share Posted October 14, 2022 22 hours ago, ich777 said: @Pillendreher gehe ich recht in der Annahme das du deiner syslinux.config das hinzugefügt hast: initcall_blacklist=acpi_cpufreq_init ...und dann noch die Datei: /boot/config/modprobe.d/amd_pstate.conf um den Treiber zu laden? Geht mir nur um die Klarheit für andere User die den amd_pstate Treiber zu aktivieren versuchen. Ja, oder eben im go-file Quote Link to comment
ich777 Posted October 14, 2022 Share Posted October 14, 2022 25 minutes ago, kdwg said: Ja, oder eben im go-file Aber diese beiden dinge genügen oder? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.