Why isn't my CPU being fully utilized anymore?

when i installed Manjaro i did the required changes to the Governor(Performance),and typing various commands would show that the desired Frequency was achieved(4.10 GHz in my case).

now this is what i get:

cpupower frequency-info                                                                                                                                    ✔ 
analyzing CPU 1:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 4.10 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 4.10 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 800 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

watch -n1 “grep "^[c]pu MHz" /proc/cpuinfo”

Every 1.0s: grep "^[c]pu MHz" /proc/cpuinfo                                                                                                                    
cpu MHz         : 4100.003
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 4097.489

watch -n1 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

Every 1.0s: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq /sys/devices/system/cpu/cpu2/c...

800000
800000
800000
800000
800000
4100026
800000
800000
800000
800000
800000
800000

i used to have all cores run at 4.10 all the time(as desired)

inxi -Fazy --no-host

System:
Kernel: 6.1.53-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
root=UUID=a445c87d-e6a9-47fd-9601-614f3b3e7781 rw quiet apparmor=1
security=apparmor resume=UUID=29e42246-1548-46dd-91f5-17d1f76c7bfd
udev.log_priority=3
Desktop: KDE Plasma v: 5.27.8 tk: Qt v: 5.15.10 info: latte-dock
wm: kwin_x11 vt: 2 dm: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
Type: Laptop System: ASUSTeK product: TUF Gaming FX705GD_FX705GD v: 1.0
serial:
Mobo: ASUSTeK model: FX705GD v: 1.0 serial:
UEFI: American Megatrends v: FX705GD.306 date: 05/25/2020
Battery:
ID-1: BAT0 charge: 47.2 Wh (100.0%) condition: 47.2/64.1 Wh (73.6%)
volts: 16.4 min: 15.6 model: Simplo SDI ICR18650 type: Li-ion
serial: status: full cycles: 41
CPU:
Info: model: Intel Core i7-8750H bits: 64 type: MT MCP arch: Coffee Lake
gen: core 8 level: v3 note: check built: 2018 process: Intel 14nm family: 6
model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF4
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
L3: 9 MiB desc: 1x9 MiB
Speed (MHz): avg: 1350 high: 4100 min/max: 800/4100 scaling:
driver: intel_pstate governor: performance cores: 1: 4100 2: 800 3: 800
4: 800 5: 800 6: 800 7: 4100 8: 800 9: 800 10: 800 11: 800 12: 800
bogomips: 52815
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities:
Type: gather_data_sampling mitigation: Microcode
Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
vulnerable
Type: mds mitigation: Clear CPU buffers; SMT vulnerable
Type: meltdown mitigation: PTI
Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
Type: retbleed mitigation: IBRS
Type: spec_rstack_overflow status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: IBRS, IBPB: conditional, STIBP: conditional,
RSB filling, PBRSB-eIBRS: Not affected
Type: srbds mitigation: Microcode
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: ASUSTeK
driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
ports: active: eDP-1 empty: none bus-ID: 00:02.0 chip-ID: 8086:3e9b
class-ID: 0300
Device-2: NVIDIA GP107M [GeForce GTX 1050 Mobile] vendor: ASUSTeK
driver: nvidia v: 535.104.05 alternate: nouveau,nvidia_drm non-free: 535.xx+
status: current (as of 2023-08) arch: Pascal code: GP10x process: TSMC 16nm
built: 2016-21 pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link-max: gen: 3
speed: 8 GT/s ports: active: none empty: HDMI-A-1 bus-ID: 01:00.0
chip-ID: 10de:1c8d class-ID: 0300
Device-3: IMC Networks USB2.0 HD UVC WebCam driver: uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-11:4 chip-ID: 13d3:56a2
class-ID: 0e02 serial:
Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.2.0
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia dri: iris
gpu: i915 display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
s-diag: 582mm (22.93")
Monitor-1: eDP-1 model: AU Optronics 0x429d built: 2018 res: 1920x1080
hz: 60 dpi: 128 gamma: 1.2 size: 382x215mm (15.04x8.46") diag: 438mm (17.3")
ratio: 16:9 modes: 1920x1080
API: OpenGL v: 4.6 Mesa 23.1.7-1 renderer: Mesa Intel UHD Graphics 630
(CFL GT2) direct-render: Yes
Audio:
Device-1: Intel Cannon Lake PCH cAVS vendor: ASUSTeK
driver: sof-audio-pci-intel-cnl alternate: snd_hda_intel, snd_soc_skl,
snd_sof_pci_intel_cnl bus-ID: 00:1f.3 chip-ID: 8086:a348 class-ID: 0403
API: ALSA v: k6.1.53-1-MANJARO status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 0.3.80 status: off with: pipewire-media-session
status: active tools: pw-cli
Server-3: PulseAudio v: 16.1 status: active with: 1: pulseaudio-alsa
type: plugin 2: pulseaudio-jack type: module tools: pacat,pactl
Network:
Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280
IF: wlo1 state: down mac:
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
port: 3000 bus-ID: 03:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac:
IF-ID-1: vmnet1 state: unknown speed: N/A duplex: N/A mac:
IF-ID-2: vmnet8 state: unknown speed: N/A duplex: N/A mac:
Bluetooth:
Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) driver: btusb v: 0.8
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-14:5
chip-ID: 8087:0aaa class-ID: e001
Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: see --recommends
Drives:
Local Storage: total: 476.94 GiB used: 57.69 GiB (12.1%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Kingston model: RBUSNS8154P3512GJ
size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 15.8 Gb/s
lanes: 2 tech: SSD serial: fw-rev: E8FK11.C temp: 47.9 C
scheme: GPT
Partition:
ID-1: / raw-size: 467.84 GiB size: 459.43 GiB (98.20%)
used: 57.69 GiB (12.6%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 312 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
compressor: zstd max-pool: 20%
ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
System Temperatures: cpu: 55.0 C pch: 52.0 C mobo: N/A
Fan Speeds (rpm): cpu: 0
Info:
Processes: 290 Uptime: 34m wakeups: 1 Memory: total: 16 GiB
available: 15.48 GiB used: 2.89 GiB (18.7%) Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
Packages: pm: pacman pkgs: 1460 libs: 415 tools: pamac pm: flatpak pkgs: 0
Shell: Zsh v: 5.9 running-in: konsole inxi: 3.3.29

please don’t post images - you already demonstrated that you know how to format text output.

since it always refresh,i can’t copy paste.
what’s the pause button?

found it:
ctrl+s

change -n1 to -n10 - then it updates every 10th s instead

1 Like

it’s the same result:

Every 10.0s: grep "^[c]pu MHz" /proc/cpuinfo                                                                                                                   

cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 4098.241
cpu MHz         : 4098.696
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000
cpu MHz         : 800.000

In a virtual terminal - poll every 30s

 $ watch -n30 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
Every 30,0s: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq /sy...  tiger: Mon Sep 25 11:29:25 2023

1800000
1779457
1800000
1793050
1800000
1794074
1792947
1791888
1794126
1800000
1800000
1787646
1782464
1784143
1762665
1780681
1800000
1800000
1793346
1800000
1800000
1780211
1772648
1779314

open another shell and switch to root

su -l root

Then you can watch the output - give it a little time to adjust

cpupower frequency-set -g performance

After a few minutes it will adjust

Every 30,0s: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq /sy...  tiger: Mon Sep 25 11:32:15 2023

4100000
4100000
4100000
4100000
4100000
4361390
4100000
4100000
4100000
4100000
1794075
4100000
4100000
4100000
4100000
4100000
4100000
4100000
4100000
4100000
2026857
4100000
4100000
4100000

If you put the system to work

Every 30,0s: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq /sy...  tiger: Mon Sep 25 11:36:38 2023

3688753
4539801
4294870
3952611
4100000
3548047
4100000
3633394
4100000
4100000
4100000
4100000
4539039
4537794
4541058
3633046
4100000
3632495
4100000
4539025
3632167
3628884
4100000
4539908
1 Like
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor                                                                                                          ✔  4m 50s  
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance

content of
/etc/default/cpupower:

# Define CPUs governor
# valid governors: ondemand, performance, powersave, conservative, userspace.
governor='performance'

# Limit frequency range
# Valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq="2.25GHz"
#max_freq="3GHz"

# Specific frequency to be set.
# Requires userspace governor to be available.
# Do not set governor field if you use this one.
#freq=

# Utilizes cores in one processor package/socket first before processes are 
# scheduled to other processor packages/sockets.
# See man (1) CPUPOWER-SET for additional details.
#mc_scheduler=

# Utilizes thread siblings of one processor core first before processes are
# scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
#smp_scheduler=

#  Sets a register on supported Intel processore which allows software to convey
# its policy for the relative importance of performance versus energy savings to
# the  processor. See man (1) CPUPOWER-SET for additional details.
#perf_bias=

# vim:set ts=2 sw=2 ft=sh et:

Did you enable the service as described at CPU frequency scaling - ArchWiki

1 Like

this?

systemctl status cpupower.service                                                                  
● cpupower.service - Apply cpupower configuration
     Loaded: loaded (/usr/lib/systemd/system/cpupower.service; enabled; preset: disabled)
     Active: active (exited) since Mon 2023-09-25 11:37:25 IDT; 1h 2min ago
    Process: 736 ExecStart=/usr/lib/systemd/scripts/cpupower (code=exited, status=0/SUCCESS)
   Main PID: 736 (code=exited, status=0/SUCCESS)
        CPU: 5ms

Sep 25 11:37:25 systemd[1]: Starting Apply cpupower configuration...
Sep 25 11:37:25  systemd[1]: Finished Apply cpupower configuration.

also you said:

i would like the cores to run constantly at 4.10,regardless of the system activity.
it used to be possible.

You can put the system to work with stress

i just want my cores to run at max speed,not burn my old laptop.

So you actually don’t have a problem at all, you just don’t like the frequency scaling invented and used in every cpu since about 25 years ago.
It is of course entirely possible to lock it on the highest frequency even in idle, although i do not understand the idea behind it…i hope you have a good (water) cooling.

2 Likes

I doubt it:

1 Like

CPU i7-8750H is designed to work at 2.2 GHz as base frequency, and uses Intel Turbo Boost Technology to reach 4.10 GHz when it needs more power.
https://www.intel.com/content/www/us/en/products/sku/134906/intel-core-i78750h-processor-9m-cache-up-to-4-10-ghz/specifications.html

1 Like

i find having my CPU run at max clock speed makes the system more responsive and snappy.
no water cooling needed for that.

it used to work like that until half a year ago with no issues(no over heating or excessive fan activity).
then after some Manjaro updates i was noticing it hovering at around 2100Ghz.
now it’s at 800.

i set it to “Performance” for a reason; not balanced Powersave or Ondemand.

@medmedin
but you have an option in Windows(High Performance plan) and Linux to choose the Clock speed.

i’ll just link to a post i made 3 years ago where i set it to Performance and everything worked as expected:

A CPU with Turbo Boost Technology is not designed to always run at its “Max Turbo Frequency”, because that speed is reached only for short durations under certain conditions via something called “Algorithmic Overclocking” to maximize performance.

https://www.intel.com/content/www/us/en/gaming/resources/turbo-boost.html
https://www.intel.com/content/www/us/en/architecture-and-technology/turbo-boost/turbo-boost-technology.html

2 Likes

Hey linub.
in your file: /etc/default/cpupower

Just remove the ‘#’ and enter your min & max values to stop it going down to 800MHz

#min_freq=“2.25GHz”
#max_freq=“3GHz”

change to

min_freq=“2.2GHz”
max_freq=“4.1GHz”

From the spec for the i7-8750H try a MIN of 2.2GHz but if it gets a bit hot set the MIN to 1.7GHz.
Intel® Core™ i7-8750H Processor upto 4.1GHz

I agree with you about wanting it to run at full power continuously making it very responsive, but the real problem is the cpu is a 35W laptop processor so it’s built to be energy efficient and cool.

Also if it is a laptop it will still likely go down to 800MHz if not externally powered.

i thought about doing that,although i’m a bit concerned manually setting the Frequency.
I’ll try it anyway at some point,i just suspect this might be the default behavior decided lately by the Linux Kernel.

or;my battery is dying.(i noticed it acting strange lately)