1 # SPDX-License-Identifier: GPL-2.0-only << 2 # 1 # 3 # Timer subsystem related configuration option 2 # Timer subsystem related configuration options 4 # 3 # 5 << 6 # Options selectable by arch Kconfig << 7 << 8 # Watchdog function for clocksources to detect << 9 config CLOCKSOURCE_WATCHDOG << 10 bool << 11 << 12 # Architecture has extra clocksource data << 13 config ARCH_CLOCKSOURCE_DATA << 14 bool << 15 << 16 # Architecture has extra clocksource init call << 17 config ARCH_CLOCKSOURCE_INIT << 18 bool << 19 << 20 # Clocksources require validation of the clock << 21 # cycle update - x86/TSC misfeature << 22 config CLOCKSOURCE_VALIDATE_LAST_CYCLE << 23 bool << 24 << 25 # Timekeeping vsyscall support << 26 config GENERIC_TIME_VSYSCALL << 27 bool << 28 << 29 # The generic clock events infrastructure << 30 config GENERIC_CLOCKEVENTS << 31 def_bool !LEGACY_TIMER_TICK << 32 << 33 # Architecture can handle broadcast in a drive << 34 config ARCH_HAS_TICK_BROADCAST << 35 bool << 36 << 37 # Clockevents broadcasting infrastructure << 38 config GENERIC_CLOCKEVENTS_BROADCAST << 39 bool << 40 depends on GENERIC_CLOCKEVENTS << 41 << 42 # Handle broadcast in default_idle_call() << 43 config GENERIC_CLOCKEVENTS_BROADCAST_IDLE << 44 bool << 45 depends on GENERIC_CLOCKEVENTS_BROADCA << 46 << 47 # Automatically adjust the min. reprogramming << 48 # clock event device << 49 config GENERIC_CLOCKEVENTS_MIN_ADJUST << 50 bool << 51 << 52 # Generic update of CMOS clock << 53 config GENERIC_CMOS_UPDATE << 54 bool << 55 << 56 # Select to handle posix CPU timers from task_ << 57 # and not from the timer interrupt context << 58 config HAVE_POSIX_CPU_TIMERS_TASK_WORK << 59 bool << 60 << 61 config POSIX_CPU_TIMERS_TASK_WORK << 62 bool << 63 default y if POSIX_TIMERS && HAVE_POSI << 64 << 65 config LEGACY_TIMER_TICK << 66 bool << 67 help << 68 The legacy timer tick helper is used << 69 lack support for the generic clockev << 70 New platforms should use generic clo << 71 << 72 config TIME_KUNIT_TEST << 73 tristate "KUnit test for kernel/time f << 74 depends on KUNIT << 75 default KUNIT_ALL_TESTS << 76 help << 77 Enable this option to test RTC libra << 78 << 79 If unsure, say N. << 80 << 81 config CONTEXT_TRACKING << 82 bool << 83 << 84 config CONTEXT_TRACKING_IDLE << 85 bool << 86 select CONTEXT_TRACKING << 87 help << 88 Tracks idle state on behalf of RCU. << 89 << 90 if GENERIC_CLOCKEVENTS << 91 menu "Timers subsystem" << 92 << 93 # Core internal switch. Selected by NO_HZ_COMM << 94 # only related to the tick functionality. Ones << 95 # are supported independent of this. << 96 config TICK_ONESHOT 4 config TICK_ONESHOT 97 bool 5 bool 98 6 99 config NO_HZ_COMMON << 100 bool << 101 select TICK_ONESHOT << 102 << 103 choice << 104 prompt "Timer tick handling" << 105 default NO_HZ_IDLE if NO_HZ << 106 << 107 config HZ_PERIODIC << 108 bool "Periodic timer ticks (constant r << 109 help << 110 This option keeps the tick running p << 111 rate, even when the CPU doesn't need << 112 << 113 config NO_HZ_IDLE << 114 bool "Idle dynticks system (tickless i << 115 select NO_HZ_COMMON << 116 help << 117 This option enables a tickless idle << 118 will only trigger on an as-needed ba << 119 This is usually interesting for ener << 120 << 121 Most of the time you want to say Y h << 122 << 123 config NO_HZ_FULL << 124 bool "Full dynticks system (tickless)" << 125 # NO_HZ_COMMON dependency << 126 # We need at least one periodic CPU fo << 127 depends on SMP << 128 depends on HAVE_CONTEXT_TRACKING_USER << 129 # VIRT_CPU_ACCOUNTING_GEN dependency << 130 depends on HAVE_VIRT_CPU_ACCOUNTING_GE << 131 select NO_HZ_COMMON << 132 select RCU_NOCB_CPU << 133 select VIRT_CPU_ACCOUNTING_GEN << 134 select IRQ_WORK << 135 select CPU_ISOLATION << 136 help << 137 Adaptively try to shutdown the tick w << 138 the CPU is running tasks. Typically t << 139 task on the CPU. Chances for running << 140 the task mostly runs in userspace and << 141 << 142 You need to fill up the nohz_full boo << 143 desired range of dynticks CPUs to use << 144 the expense of some overhead in user << 145 syscalls, exceptions and interrupts. << 146 << 147 By default, without passing the nohz_ << 148 like NO_HZ_IDLE. << 149 << 150 If you're a distro say Y. << 151 << 152 endchoice << 153 << 154 config CONTEXT_TRACKING_USER << 155 bool << 156 depends on HAVE_CONTEXT_TRACKING_USER << 157 select CONTEXT_TRACKING << 158 help << 159 Track transitions between kernel and << 160 tickless cputime accounting. The for << 161 tracking to enter/exit RCU extended << 162 << 163 config CONTEXT_TRACKING_USER_FORCE << 164 bool "Force user context tracking" << 165 depends on CONTEXT_TRACKING_USER << 166 default y if !NO_HZ_FULL << 167 help << 168 The major pre-requirement for full d << 169 support the user context tracking su << 170 other dependencies to provide in ord << 171 dynticks working. << 172 << 173 This option stands for testing when << 174 user context tracking backend but do << 175 requirements to make the full dyntic << 176 Without the full dynticks, there is << 177 for user context tracking and the su << 178 userspace extended quiescent state a << 179 accounting. This option copes with t << 180 dynticks subsystem by forcing the us << 181 CPUs in the system. << 182 << 183 Say Y only if you're working on the << 184 architecture backend for the user co << 185 << 186 Say N otherwise, this option brings << 187 don't want in production. << 188 << 189 config NO_HZ 7 config NO_HZ 190 bool "Old Idle dynticks config" !! 8 bool "Tickless System (Dynamic Ticks)" >> 9 depends on GENERIC_TIME && GENERIC_CLOCKEVENTS >> 10 select TICK_ONESHOT 191 help 11 help 192 This is the old config entry that en !! 12 This option enables a tickless system: timer interrupts will 193 We keep it around for a little while !! 13 only trigger on an as-needed basis both when the system is 194 compatibility with older config file !! 14 busy and when the system is idle. 195 15 196 config HIGH_RES_TIMERS 16 config HIGH_RES_TIMERS 197 bool "High Resolution Timer Support" 17 bool "High Resolution Timer Support" >> 18 depends on GENERIC_TIME && GENERIC_CLOCKEVENTS 198 select TICK_ONESHOT 19 select TICK_ONESHOT 199 help 20 help 200 This option enables high resolution 21 This option enables high resolution timer support. If your 201 hardware is not capable then this op 22 hardware is not capable then this option only increases 202 the size of the kernel image. 23 the size of the kernel image. 203 24 204 config CLOCKSOURCE_WATCHDOG_MAX_SKEW_US !! 25 config GENERIC_CLOCKEVENTS_BUILD 205 int "Clocksource watchdog maximum allo !! 26 bool 206 depends on CLOCKSOURCE_WATCHDOG !! 27 default y 207 range 50 1000 !! 28 depends on GENERIC_CLOCKEVENTS || GENERIC_CLOCKEVENTS_MIGR 208 default 125 << 209 help << 210 Specify the maximum amount of allowa << 211 microseconds before reporting the cl << 212 The default is based on a half-secon << 213 interval and NTP's maximum frequency << 214 per million. If the clocksource is << 215 it is good enough for the clocksourc << 216 29 217 endmenu << 218 endif <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.