I am wondering what is driving the nearly double power consumption when booted into OpenWrt vs booted into Arch Linux. The hardware is an AMD Ryzen 7 5800U based mini PC. I built a snapshot of OpenWrt running the 3.1.38 kernel (see PR#12982). Arch is running either the 3.1.38-lts kernel or the 6.4.1 kernel.
Under OpenWrt idle power consumption is 9 watts. Under Arch (either kernel) idle power consumption is 5 watts.
Both use the schedutil governor and amd_pstate=passive
There are some differences in the two kernel's tick rates but I am not sure if that would explain the difference.
Does anyone have any thoughts? Could there be something in the kernel config to blame?
On OpenWrt:
% grep HZ config
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
# CONFIG_MACHZ_WDT is not set
On Arch:
% grep HZ config
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_MACHZ_WDT=m
NO_HZ&&NO_HZ_FULL&&NO_HZ_IDLE would be worth testing, beyond that there may be additional missing (not enabled-) drivers (modules) in OpenWrt which properly initialize hardware (and put it into lower power mode).
As a test, I booted Arch with OpenWrt's kernel slightly modified to support devtmpfs which Arch needs. Arch successfully booted with this kernel and had the same 9 watts of idle power consumption...
tl; dr - there are no differences of power consumption of these distros. OpenWrt has flowing about 30 GB/hour of data since it was fully configured vs Arch which was not flowing any traffic.