2007-02-16 01:28:03 -08:00
#
# Timer subsystem related configuration options
#
2012-03-31 12:45:43 +02:00
2012-05-18 09:59:57 +02:00
# Options selectable by arch Kconfig
# Watchdog function for clocksources to detect instabilities
config CLOCKSOURCE_WATCHDOG
bool
# Architecture has extra clocksource data
config ARCH_CLOCKSOURCE_DATA
bool
2018-09-17 14:45:34 +02:00
# Architecture has extra clocksource init called from registration
config ARCH_CLOCKSOURCE_INIT
bool
2014-07-16 21:05:12 +00:00
# Clocksources require validation of the clocksource against the last
# cycle update - x86/TSC misfeature
config CLOCKSOURCE_VALIDATE_LAST_CYCLE
bool
2012-09-11 19:58:13 -04:00
# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL
bool
2012-05-18 09:59:57 +02:00
# Old style timekeeping
config ARCH_USES_GETTIMEOFFSET
bool
# The generic clock events infrastructure
config GENERIC_CLOCKEVENTS
bool
2013-01-14 17:05:22 +00:00
# Architecture can handle broadcast in a driver-agnostic way
config ARCH_HAS_TICK_BROADCAST
bool
2012-05-18 09:59:57 +02:00
# Clockevents broadcasting infrastructure
config GENERIC_CLOCKEVENTS_BROADCAST
bool
depends on GENERIC_CLOCKEVENTS
2012-05-21 23:16:18 +02:00
# Automatically adjust the min. reprogramming time for
# clock event device
config GENERIC_CLOCKEVENTS_MIN_ADJUST
bool
2012-05-18 09:59:57 +02:00
# Generic update of CMOS clock
config GENERIC_CMOS_UPDATE
bool
2012-05-21 23:16:18 +02:00
if GENERIC_CLOCKEVENTS
menu "Timers subsystem"
2011-08-10 23:21:01 +02:00
# Core internal switch. Selected by NO_HZ_COMMON / HIGH_RES_TIMERS. This is
2012-05-21 23:16:18 +02:00
# only related to the tick functionality. Oneshot clockevent devices
2017-11-01 11:04:51 -07:00
# are supported independent of this.
2012-05-21 23:16:18 +02:00
config TICK_ONESHOT
bool
2011-08-10 23:21:01 +02:00
config NO_HZ_COMMON
bool
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
select TICK_ONESHOT
2011-08-10 23:21:01 +02:00
choice
prompt "Timer tick handling"
default NO_HZ_IDLE if NO_HZ
2013-04-13 16:53:35 +02:00
config HZ_PERIODIC
2011-08-10 23:21:01 +02:00
bool "Periodic timer ticks (constant rate, no dynticks)"
help
This option keeps the tick running periodically at a constant
rate, even when the CPU doesn't need it.
config NO_HZ_IDLE
bool "Idle dynticks system (tickless idle)"
2012-05-21 23:16:18 +02:00
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
2011-08-10 23:21:01 +02:00
select NO_HZ_COMMON
2012-05-21 23:16:18 +02:00
help
2011-08-10 23:21:01 +02:00
This option enables a tickless idle system: timer interrupts
will only trigger on an as-needed basis when the system is idle.
This is usually interesting for energy saving.
Most of the time you want to say Y here.
2012-05-21 23:16:18 +02:00
2013-04-12 16:45:34 +02:00
config NO_HZ_FULL
2013-04-13 17:04:04 +02:00
bool "Full dynticks system (tickless)"
2011-08-10 23:21:01 +02:00
# NO_HZ_COMMON dependency
2011-08-10 23:21:01 +02:00
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
2013-04-13 17:04:04 +02:00
# We need at least one periodic CPU for timekeeping
depends on SMP
depends on HAVE_CONTEXT_TRACKING
2013-04-26 15:16:31 +02:00
# VIRT_CPU_ACCOUNTING_GEN dependency
2013-09-16 15:28:21 -07:00
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
2011-08-10 23:21:01 +02:00
select NO_HZ_COMMON
2011-08-10 23:21:01 +02:00
select RCU_NOCB_CPU
2013-04-26 15:16:31 +02:00
select VIRT_CPU_ACCOUNTING_GEN
2013-04-18 00:15:40 +02:00
select IRQ_WORK
2017-12-14 19:18:25 +01:00
select CPU_ISOLATION
2011-08-10 23:21:01 +02:00
help
Adaptively try to shutdown the tick whenever possible, even when
2012-12-18 17:32:19 +01:00
the CPU is running tasks. Typically this requires running a single
task on the CPU. Chances for running tickless are maximized when
the task mostly runs in userspace and has few kernel activity.
2013-04-12 16:45:34 +02:00
You need to fill up the nohz_full boot parameter with the
2012-12-18 17:32:19 +01:00
desired range of dynticks CPUs.
This is implemented at the expense of some overhead in user <-> kernel
transitions: syscalls, exceptions and interrupts. Even when it's
dynamically off.
Say N.
2011-08-10 23:21:01 +02:00
endchoice
2013-04-12 16:40:12 +02:00
config NO_HZ
bool "Old Idle dynticks config"
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
help
This is the old config entry that enables dynticks idle.
We keep it around for a little while to enforce backward
compatibility with older config files.
2012-05-21 23:16:18 +02:00
config HIGH_RES_TIMERS
bool "High Resolution Timer Support"
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
select TICK_ONESHOT
help
This option enables high resolution timer support. If your
hardware is not capable then this option only increases
the size of the kernel image.
endmenu
endif