mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-02-05 00:07:42 +01:00
Running with CONFIG_HZ_PERIODIC=y keeps the scheduler tick running continuously, which produces higher jitter and lower power efficiency. In contrast, CONFIG_NO_HZ_IDLE=y (the upstream default) stops the tick only when the CPU is idle, giving lower idle power and normal runtime jitter. An Intel N150-based router/firewall was tested using two kernel builds: one with CONFIG_HZ_PERIODIC=y, and one with CONFIG_NO_HZ_IDLE=y. Power consumption was measured while the system was essentially idle (no meaningful traffic). The CONFIG_NO_HZ_IDLE=y build consistently used less power. Details: The two power-measurement methods were: 1. PkgWatt from turbostat (software) 2. Wall-power measurement using a Kill-A-Watt (hardware) The test began by zeroing the Kill-A-Watt and simultaneously running: turbostat --quiet --Summary --interval 10 --show Busy%,PkgWatt The test duration was defined by the time required for the Kill-A-Watt to accumulate 0.005 kWh, after which the average wattage was calculated. Results: +----------------------+-----------------+----------------+-----------+ | Metric | HZ_PERIODIC | NO_HZ_IDLE | Delta % | +----------------------+-----------------+----------------+-----------+ | PkgWatt | 3.59 ± 0.38 | 3.38 ± 0.34 | -5.9 % | +----------------------+-----------------+----------------+-----------+ | Avg wattage at wall | 12.47 | 12.00 | -3.77 % | +----------------------+-----------------+----------------+-----------+ The mean PkgWatt difference is 210 mW (5.9%) in favor of CONFIG_NO_HZ_IDLE=y, with a t-statistic of ~3.17 and p ≈ 0.002. Wall-power measurements show a 470 mW (3.77%) reduction under CONFIG_NO_HZ_IDLE=y. Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/21470 Signed-off-by: Robert Marko <robimarko@gmail.com> |
||
|---|---|---|
| .. | ||
| airoha | ||
| apm821xx | ||
| armsr | ||
| at91 | ||
| ath79 | ||
| bcm27xx | ||
| bcm47xx | ||
| bcm53xx | ||
| bcm4908 | ||
| bmips | ||
| d1 | ||
| econet | ||
| gemini | ||
| generic | ||
| imx | ||
| ipq40xx | ||
| ipq806x | ||
| ixp4xx | ||
| kirkwood | ||
| lantiq | ||
| layerscape | ||
| loongarch64 | ||
| malta | ||
| mediatek | ||
| microchipsw | ||
| mpc85xx | ||
| mvebu | ||
| mxs | ||
| octeon | ||
| omap | ||
| pistachio | ||
| qoriq | ||
| qualcommax | ||
| qualcommbe | ||
| ramips | ||
| realtek | ||
| rockchip | ||
| sifiveu | ||
| siflower | ||
| starfive | ||
| stm32 | ||
| sunxi | ||
| tegra | ||
| uml | ||
| x86 | ||
| zynq | ||
| Makefile | ||