Skip to content

Commit 3111168

Browse files
graysky2Ansuel
authored andcommitted
x86: switch config to a tickless kernel
This commit fixes and closes #16313. Switch the x86 kernel's timer to tickless operation which is more power efficient since it is not woken up by periodic timer interrupts when idle. Also add several other options for CPU idle governors particularly the upstream default for tickless kernels, CONFIG_CPU_IDLE_GOV_MENU. Without this commit, my AMD Ryzen 7 5800U can only achieve a minimum core frequency of 1,384 MHz which is over 3x higher than the processor's minimum frequency of 400 MHz which is accessible with this modification. In addition to the lower clock rate, I have seen a concomitant reduction in both idle temps and at-the-wall power consumption. Summary: * Idle CPU freqs dropped from 1,384 MHz to 400 Mhz. * Idle power consumption dropped from 7 W avg to 5 W. * Idle temps have dropped from 50C on avg to 43C. There are other well known reasons to switch to a tickless timer including: reduced interrupt overhead, better use of CPU resources, and reduced latency to name a few. Build system: x86/64 Build-tested: x86/64/AMD Cezanne Run-tested: x86/64/AMD Cezanne Signed-off-by: John Audia <[email protected]> Link: openwrt/openwrt#16317 Signed-off-by: Christian Marangi <[email protected]>
1 parent 3dbe730 commit 3111168

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

target/linux/x86/config-6.6

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ CONFIG_COMPAT_32=y
4848
CONFIG_COMPAT_32BIT_TIME=y
4949
# CONFIG_COMPAT_VDSO is not set
5050
CONFIG_CONSOLE_TRANSLATIONS=y
51+
CONFIG_CONTEXT_TRACKING_USER_FORCE=y
5152
# CONFIG_CPU5_WDT is not set
5253
CONFIG_CPU_FREQ=y
5354
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -61,7 +62,10 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
6162
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
6263
CONFIG_CPU_FREQ_STAT=y
6364
CONFIG_CPU_IDLE=y
65+
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
6466
CONFIG_CPU_IDLE_GOV_LADDER=y
67+
CONFIG_CPU_IDLE_GOV_MENU=y
68+
CONFIG_CPU_IDLE_GOV_TEO=y
6569
CONFIG_CPU_MITIGATIONS=y
6670
CONFIG_CPU_SUP_AMD=y
6771
CONFIG_CPU_SUP_CENTAUR=y
@@ -180,7 +184,6 @@ CONFIG_HW_RANDOM=y
180184
CONFIG_HW_RANDOM_GEODE=y
181185
CONFIG_HW_RANDOM_VIA=y
182186
# CONFIG_HYPERVISOR_GUEST is not set
183-
CONFIG_HZ_PERIODIC=y
184187
CONFIG_I8253_LOCK=y
185188
CONFIG_IA32_FEAT_CTL=y
186189
# CONFIG_IB700_WDT is not set
@@ -275,6 +278,9 @@ CONFIG_NET_XGRESS=y
275278
CONFIG_NLS=y
276279
# CONFIG_NMI_CHECK_CPU is not set
277280
# CONFIG_NOHIGHMEM is not set
281+
CONFIG_NO_HZ=y
282+
CONFIG_NO_HZ_COMMON=y
283+
CONFIG_NO_HZ_FULL=y
278284
CONFIG_NR_CPUS=1
279285
CONFIG_NR_CPUS_DEFAULT=1
280286
CONFIG_NR_CPUS_RANGE_BEGIN=1
@@ -330,6 +336,8 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y
330336
# CONFIG_PUNIT_ATOM_DEBUG is not set
331337
CONFIG_RANDSTRUCT_NONE=y
332338
CONFIG_RATIONAL=y
339+
CONFIG_RCU_LAZY=y
340+
CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
333341
CONFIG_RD_BZIP2=y
334342
CONFIG_RD_GZIP=y
335343
CONFIG_RETHUNK=y

0 commit comments

Comments
 (0)