I disabled all extra daemons (snort, samba4, etc.) as well as all interfaces but still, the CPU freq idles around 1,394 MHz. I am wondering what monitoring command I can use to see all calls to the CPU or to /proc/interrupts or to something else that might explain why the CPU freq does not drop.
I have been using htop and sorting by CPU% and the only things >0.0 are:
htop itself but I do not believe it is to blame since I can boot the identical hardware into another distro and see 400 MHz across all cores
/sbin/procd occasionally gets some fraction of a CPU
If I run: watch cat /proc/interrupts I see both the Local timer interrupts, Rescheduling interrupts, and Function call interrupts going up by hundreds but I do not know which PIDs are doing it.
If I cat both of those repeatedly, I get different values which means they are changing.
EDIT: maybe as I test, I can connect to the local console and unplug both of the NICs (one goes to the modem and the other to a smart switch). I would think that would put a stop to any traffic.
I am not seeing anything register. I nthe screenshot htop is taking 1.5% but there are refreshes where is it 0.0. Also, when booted into Arch, htop happily reads 400 MHz for all cores:
There are two power usage parameters that might (or not) help: I can get my i7-6700T to ~900MHz in power save mode. From lscpu: CPU min MHz: 800.0000
If that does not solve your problem, maybe try going back cpufreq scaling driver: is it possible other distros use it? I did notice that the older cpufreq driver gets CPU usage lower that the current/new one. That way you can control min/max frequencies as well as the aggressiveness of the scaling algorithm.
powersave_power() {
for p in /sys/devices/system/cpu/cpufreq/policy*; do
echo powersave > "${p}"/scaling_governor
echo power > "${p}"/energy_performance_preference
done
}
performance_performance() {
for p in /sys/devices/system/cpu/cpufreq/policy*; do
echo performance > "${p}"/scaling_governor
echo performance > "${p}"/energy_performance_preference
done
}
Thanks for the reply. I did find that /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference was set to 'performance' but changing it to 'power' did not change the lowest freq. Even when I had this in combo with disabling all interfaces and all daemons (except for rpcd).
I am thinking that there must be a difference in kernel config between Arch and OpenWrt which is causing this.
As a test, I imaged a stock snapshot r27289 to a spare nvme and booted into it. I found that same issue there (basically nothing configured) which makes me think that problem lies in the OpenWrt kernel configs.
I think you typed in wrong thread. OpenWRT will not configure anything for you past 1st network adapter LAN 2nd adapter wan with respective dhcp client and server combination.
On my desktop (AMD Ryzen 9 5950X) which does reach its minimum CPU freq on idle, I am seeing similar output for the scaling MHz: line. It does not output the turbo frequency.
EDIT: I did reset the BIOS, and I am getting the same output, just a percentage.