I've got a frustrating mystery and I'm hoping that someone can point me in the right direction.
- Under load, my system doesn't increase CPU frequency to meet demand after some period of time passes after boot.
- I first observed this during video calls where the audio degrades and my laptop generally becomes sluggish.
- I mostly assess frequency and load in my manual tests with
- This actually happens under windows and linux but I'm running linux right now and have no intention of going back to windows, and I assume the tools and options are better on linux.
Properties of my system:
- Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
- CPU max MHz: 2301.0000
- CPU min MHz: 400.0000
- Lenovo P15s ThinkPad Gen 1 . The listing claimed gen2 but I guess it was a lie.
- Ubuntu 22.04,
- Bios version 1.27. Apparently the latest available.
- uname -a Linux 5.15.0-60-generic #66-Ubuntu SMP Fri Jan 20 14:29:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
lsmod | grep intel
lsmod | grep acpi
- Output of
sudo 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: 10.0 us hardware limits: 400 MHz - 2.30 GHz available frequency steps: 2.30 GHz, 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 900 MHz, 800 MHz, 700 MHz, 500 MHz, 400 MHz available cpufreq governors: conservative ondemand userspace powersave performance schedutil current policy: frequency should be within 400 MHz and 1.80 GHz. The governor "ondemand" may decide which speed to use within this range. current CPU frequency: 1.80 GHz (asserted by call to hardware) boost state support: Supported: yes Active: yes
Thinks I've tried so far:
- Enabling/Disabling intel pstate driver by adding
intel_pstate=disbaleto grub. I don't think my system even uses it though.
- ondemand and performance governor. Nothing changes.
- Enabling/Disabling all of the power/CPU related BIOS options (intel speed step, etc)
- Manually setting min/max freq and governor using
cpupower frequency-set --governorand
cpufreq-set -r --min=0.8GHz --max=2.3GHz
- Using tools like (throttlestop)[https://github.com/agoose77/throttlestop] to see if it was a thermal issue, even though the tempts never get higher than 48 degrees.
- Manually unplugging my battery and holding the power button for 30 seconds (I got desperate).
- Enabling acpi driver with
sudo apt install acpi-support acpid acpi. I've tried removing these as well. freq-info claims I'm using acpi even if I remove these so I probably had no effect.
Things I don't understand:
- The min/max frequencies reported by
cpupower frequency-infodon't seem to be true. I can see the frequencies go as high as 4.2ghz in
s-tuibefore this bad state kicks in.
- If I reboot and run
s-tuiand start stress testing I actually see what I want, all cores go up to 3.5ghz -4.2ghz. At some point after they only go to .8ghz - 1.1ghz. They actually get higher just being idle before the stress test, then lock in at the lower freq.
- The amazon listing actually claims an 11th gen cpu and I just noticed lscpu is claiming a 10th gen, so I guess I got ripped off.
- Setting frequencies and governors doesn't actually change anything after I get into this bad state, even though the change are reflected in
cpupower frequency-info. The CPU freq under load won't go up.
- While in this bad state, if I start a load test then the freq does momentarily jump to 3.5-4, but then drops down to the capped lower freq.
Any pointers would be greatly appreciated.
I gave up and bought a new laptop. No more thinkpads for a while.