I have an old spare Dell V131 that I use sometimes and after a while of being on, it caps CPU frequency to its lowest (800 Mhz) and stays there.
The variable
# cat /proc/cpuinfo | grep -i "cpu Mhz"
cpu MHz : 1281.633
cpu MHz : 1324.313
cpu MHz : 1103.786
cpu MHz : 1444.849
goes to solid
cpu MHz : 798.181
cpu MHz : 798.179
cpu MHz : 798.182
cpu MHz : 798.178
and then never increases again until I reboot it. That, obviously, makes it painfully slow.
I tried different power supplies. It also happens on battery, so it's more likely a heat issue, not a power draw problem. However, it's clearly not really overheating since a reboot helps and it's not spinning up the fans or increasing the frequency after being idle for a while.
How can I find out what is lowering the frequency and, preferably, disable it or at least, reset its state from time to time without rebooting? Unless the laptop physically catches fire, I don't care about potential damage to it.
It's an Ubuntu 20.04.3 with a 5.4.0-91-generic kernel.
EDIT: Here's the suggested sensors output.
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +48.0°C (high = +86.0°C, crit = +100.0°C)
Core 0: +48.0°C (high = +86.0°C, crit = +100.0°C)
Core 1: +48.0°C (high = +86.0°C, crit = +100.0°C)
BAT0-acpi-0
Adapter: ACPI interface
in0: 11.44 V
curr1: 2.56 A
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan: 0 RPM
Processor Fan: 0 RPM
CPU: +47.0°C
Other: +47.0°C
Other: +51.0°C
GPU: +16.0°C
Other: +63.0°C
acpitz-acpi-0
Adapter: ACPI interface
temp1: +47.5°C (crit = +99.0°C)