AMD Phenom II X6 1090T, Powerd and AMD Turbo Core.

I ask for forgiveness in advance for clumsy English and possible inappropriate use of terms, unfortunately I do not know English well and this text is compiled with the help of online translators

Please explain to me, are these FreeBSD features and should I accept them as they are, or is there something I can tune and make better?

My computer:
FreeBSD 15
AMD Phemom X6 1090T.
Nvidia GTX710 (nvidia-driver-470), X11, KDE Plasma 6.5.5

I've noticed the following behavior:

All processor cores are almost always at maximum frequency, even when the processor is idle. If you don't move the mouse or do anything else, after a long period of time the frequency will drop first to 2400, then to 1600, and even to 800. But if you move the mouse even slightly, the frequency will rise to 3200 and remain at this value as long as you move the mouse or type something on the keyboard, even while the processor is idle (not loaded with work, see image).

For example, in Windows, when idle, it reduces the processor frequency more quickly and doesn't increase it with mouse movement.

But the most frustrating thing is that I don't see AMD Turbo Core working. I can run archive compression on a single core.

Code:
cpuset -c -l 5 /usr/local/bin/7z a -mx=9 -mmt=1

In this case, the other cores are idle, and one is loaded at 100%. In this case, Windows increases the frequency of one core to 3600 MHz, and in FreeBSD the frequency remains at 3200, while the other cores are idle, i.e., at the hardware level, nothing prevents the processor from increasing the core frequency.

Questions:
1. Is it possible to make that on an idle processor the frequency does not increase to 3200 simply from moving the mouse or typing in Konsole?
2. Is it possible to make AMD Turbo Core overclocking work?

Here is information that may help you make a hint:

Code:
# sysctl dev.cpu.0 
dev.cpu.0.cx_method: C1/hlt C2/io 
dev.cpu.0.cx_usage_counters: 112783859 0 
dev.cpu.0.cx_usage: 100.00% 0.00% last 1339us 
dev.cpu.0.cx_lowest: C1 
dev.cpu.0.cx_supported: C1/1/0 C2/2/75 
dev.cpu.0.freq_levels: 3200/20537 2400/15210 1600/10710 800/6492 
dev.cpu.0.freq: 3200 
dev.cpu.0.temperature: 32,6C 
dev.cpu.0.%iommu:  
dev.cpu.0.%parent: acpi0 
dev.cpu.0.%pnpinfo: _HID=none _UID=0 _CID=none 
dev.cpu.0.%location: handle=\_PR_.P001 
dev.cpu.0.%driver: cpu 
dev.cpu.0.%desc: ACPI CPU

Code:
# cat /etc/rc.conf

# -- Network beg -- 
hostname="BSD" 
ifconfig_re0="DHCP" 
ifconfig_amn0="DHCP" 
#ifconfig_re0_ipv6="inet6 accept_rtadv" 
# -- Network end -- 

# -- Services beg -- 
sshd_enable="YES" 
moused_enable="NO" 
moused_nondefault_enable="NO"                   # For automatic connection of a USB-mouse. 
powerd_enable="YES"                             # For power-save modes. 
# -- Services end -- 

# -- For X11 beg -- 
kld_list="nvidia-modeset" 
sddm_enable="YES" 
sddm_lang="en_US" 
dbus_enable="YES" 
# -- For X11 end -- 

# -- For Linux Apps beg -- 
ubuntu_enable="YES" 
# -- For Linux Apps end -- 

# -- For VirtualBox beg -- 
devfs_system_ruleset="system" 
#vboxnet_enable="YES" 
# -- For VirtualBox end -- 

# -- For Jails beg -- 
jail_enable="NO" 
# -- For Jails end -- 

# -- Misc beg -- 
dumpdev="NO" 
# -- Misc end --

Code:
# kldstat 
Id Refs Address                Size Name
 1   88 0xffffffff80200000  1f4daa0 kernel
 2    1 0xffffffff8214e000    2afd8 fusefs.ko
 3    1 0xffffffff82179000     76d8 amdtemp.ko
 4    2 0xffffffff82181000     3728 amdsmn.ko
 5    1 0xffffffff82185000    404f0 if_amn.ko
 6    1 0xffffffff821c6000     4470 amdsmb.ko
 7    4 0xffffffff821cb000     3cf8 smbus.ko
 8    1 0xffffffff821cf000     3fa0 smb.ko
 9    1 0xffffffff821d3000    1c708 geom_eli.ko
10    1 0xffffffff821f1000    62208 linux64.ko
11    7 0xffffffff82254000    21848 linux_common.ko
12    3 0xffffffff82276000     d3a8 mqueuefs.ko
13    1 0xffffffff82a19000   107330 nvidia-modeset.ko
14    1 0xffffffff82c00000  1fe1ef0 nvidia.ko
15    2 0xffffffff82b21000    32320 linux.ko
16    1 0xffffffff82b54000     3390 acpi_wmi.ko
17    1 0xffffffff82b58000     21e8 hms.ko
18    2 0xffffffff82b5b000     30a8 hidmap.ko
19    1 0xffffffff82b5f000     21e8 hpen.ko
20    1 0xffffffff82b62000     3220 intpm.ko
21    1 0xffffffff82b66000     2278 pty.ko
22    1 0xffffffff82b69000     73c0 linprocfs.ko
23    1 0xffffffff82b71000     440c linsysfs.ko
24    1 0xffffffff82b76000     3570 fdescfs.ko
25    1 0xffffffff82b7a000     4860 nullfs.ko
26    1 0xffffffff82b7f000     33c0 if_urndis.ko
27    1 0xffffffff82b83000     31d0 uether.ko
28    1 0xffffffff82b87000     2630 nlsysevent.ko
 
Updated:

The case in which the processor frequency increased to the maximum (3200) from working with a mouse or entering text is no longer observed (after a reboot), there were probably some background processors that did not affect the processor load but forced FreeBSD mechanisms to increase the frequency.

Thus, the first question is not relevant, but the second question remains relevant. I can't get a single core frequency boost (AMD Turbo Core).

In Turbo mode, one core (in the absence of load on other cores) should work at a frequency of 3600 (as in Windows, there will be 5 cores on 3200 in such a case, and one on 3600), but in my FreeBSD only work at 3200 (https://imgur.com/a/zxvuQfu).
 
I tried it in Debian.Live.

This is how my processor behaves there (https://imgur.com/a/ZG2Zukm)

Besides the fact that the Debian kernel can run in Turbo Core mode, it's also clear that the core frequencies change independently (but in FreeBSD the core frequencies change synchronously)


Is it possible to achieve the same functionality in FreeBSD (both turbo mode and independent core frequency changes)?
 
Updated, I asked the AI:

Q:
The AMD Phenom II X6 processor in Linux can change core frequencies independently of other cores, but in FreeBSD, core frequencies change synchronously and are always equal. How can I make FreeBSD score frequencies change independently, like in Linux?

A:
In FreeBSD, independent per-core frequency scaling for the AMD Phenom II X6 is not supported by the default cpufreq(4) driver architecture.
Unlike Linux, which can treat each core as an independent frequency domain via the acpi-cpufreq or powernow-k8 modules, FreeBSD’s frequency scaling is designed to operate synchronously across all cores on this specific hardware generation. This behavior is due to several factors:
Why they scale synchronously
Driver Architecture: The cpufreq subsystem in FreeBSD typically applies frequency changes globally to the package. Per-CPU frequency scaling is not currently supported because it requires a deeper integration with the kernel scheduler that has not been implemented for these older AMD architectures.

Owners of newer processors, both AMD and Intel, can FreeBSD change core frequencies independently?
 
Are you certain it isn't using Turbo Boost? My understanding is that on my Rizen 5, dev.cpu.0.freq sets the frequency, and that setting it to 3200 gives the CPU permission to use Turbo Boost when the CPU decides it can be used - it's never determined by the OS. If Windows knows when it's boosting, it probably just has better diagnostics.

You might want to put a power meter on the computer and try the various power settings manually. When I did this I found that for an idle XFCE desktop the difference was lost in the noise.

Edit. I see that AMD Phenom X6 1090T is quite old, so the behavior may be different to modern AMD CPUs. I doubt it though, as the cpu isn't adverting anything higher than 3200

dev.cpu.0.freq_levels: 3200/20537 2400/15210 1600/10710 800/6492
 
Back
Top