CPU:
$ cat /proc/cpuinfo
processor : 11
vendor_id : AuthenticAMD
cpu family : 23
model : 96
model name : AMD Ryzen 5 4600H with Radeon Graphics
stepping : 1
microcode : 0x8600104
cpu MHz : 1397.266
cache size : 512 KB
physical id : 0
siblings : 12
core id : 6
cpu cores : 6
apicid : 13
initial apicid : 13
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
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 nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 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 ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips : 5988.99
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
OS:
Xubuntu 20.10, everything is updated to latest and greatest as of 01/06.
Kernel:
$ uname -r
5.8.0-34-generic
With this linux distro and CPU combo, I have these available frequencies: 3.00 GHz, 1.70 GHz, 1.40 GHz. Example:
$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
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: 1.40 GHz - 3.00 GHz
available frequency steps: 3.00 GHz, 1.70 GHz, 1.40 GHz
available cpufreq governors: conservative userspace powersave ondemand performance schedutil
current policy: frequency should be within 1.40 GHz and 3.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: 3.00 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
Boost States: 0
Total States: 3
Pstate-P0: 3000MHz
Pstate-P1: 1700MHz
Pstate-P2: 1400MHz
I can't run a frequency of.. lets say 2.9GHz or even 800MHz for example. I want granularity on what frequency my CPU is running at.
I've tried ZenStates:
$ ./zenstates.py -p 2 -f 20 -d 8 -v 66 --enable
$ ./zenstates.py -l
P0 - Enabled - FID = 78 - DID = 8 - VID = 35 - Ratio = 30.00 - vCore = 1.21875
P1 - Enabled - FID = 66 - DID = C - VID = 60 - Ratio = 17.00 - vCore = 0.95000
P2 - Enabled - FID = 20 - DID = 8 - VID = 66 - Ratio = 8.00 - vCore = 0.91250
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled
Which works according to cpupower (not really):
analyzing CPU 0:
driver: acpi-cpufreq
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: 1.40 GHz - 3.00 GHz
available frequency steps: 3.00 GHz, 1.70 GHz, 1.40 GHz
available cpufreq governors: conservative userspace powersave ondemand performance schedutil
current policy: frequency should be within 1.40 GHz and 3.00 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency: 1.70 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
Boost States: 0
Total States: 3
Pstate-P0: 3000MHz
Pstate-P1: 1700MHz
Pstate-P2: 800MHz
But you can't actually change to 800MHz with cpupower. Lowest you can go is 1.4GHz.
I've also tried cpufrequtils
, it does nothing.
I've tried ignore_ppc
.
I am currently experiencing an interesting bug relating to CPU frequency:
My CPU is running at 400MHz after waking up from a days long suspend. How is that possible?
Current CPU frequency says 3GHz, which is wrong. I know this because of two reasons:
1.
watch -n.1 'cat /proc/cpuinfo|grep MHz'
$ cat /proc/cpuinfo|grep MHz
cpu MHz : 399.221
cpu MHz : 399.183
cpu MHz : 399.007
cpu MHz : 399.201
cpu MHz : 399.221
cpu MHz : 399.216
cpu MHz : 399.113
cpu MHz : 399.198
cpu MHz : 398.940
cpu MHz : 399.163
cpu MHz : 399.199
cpu MHz : 399.072
- My computer is running sluggish and I'm not running anything that could cause the computer to run slower than normal.
Attempts to go back to normal:
1.
cpupower frequency-set --max 3GHz
cpupower frequency-set --governor ondemand
and
cpupower frequency-set --governor performance
According to cpupower, the commands worked. But my computer was still running at 400MHz.
- I rebooted into BIOS, made no changes, exited BIOS, booted into Xubuntu, CPU frequency was still 400MHz.
This below fixed the problem:
I rebooted into windows, rebooted back into Xubuntu, and CPU frequencies were back to normal.
It may be tlp's fault. Heres my tlp config /etc/tlp.conf
, I'm only listing whats not commented:
TLP_ENABLE=1
TLP_PERSISTENT_DEFAULT=1
SCHED_POWERSAVE_ON_AC=1
WIFI_PWR_ON_AC=on
WIFI_PWR_ON_BAT=on
USB_AUTOSUSPEND=1
Here is a guy who had the same CPU suspend bug. Here is another guy, same bug.