2007-02-16 12:28:03 +03:00
#
# Timer subsystem related configuration options
#
2012-03-31 14:45:43 +04:00
2012-05-18 11:59:57 +04: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
2014-07-17 01:05:12 +04:00
# Clocksources require validation of the clocksource against the last
# cycle update - x86/TSC misfeature
config CLOCKSOURCE_VALIDATE_LAST_CYCLE
bool
2012-09-12 03:58:13 +04:00
# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL
bool
2012-05-18 11:59:57 +04:00
# Old style timekeeping
config ARCH_USES_GETTIMEOFFSET
bool
# The generic clock events infrastructure
config GENERIC_CLOCKEVENTS
bool
2013-01-14 21:05:22 +04:00
# Architecture can handle broadcast in a driver-agnostic way
config ARCH_HAS_TICK_BROADCAST
bool
2012-05-18 11:59:57 +04:00
# Clockevents broadcasting infrastructure
config GENERIC_CLOCKEVENTS_BROADCAST
bool
depends on GENERIC_CLOCKEVENTS
2012-05-22 01:16:18 +04:00
# Automatically adjust the min. reprogramming time for
# clock event device
config GENERIC_CLOCKEVENTS_MIN_ADJUST
bool
2012-05-18 11:59:57 +04:00
# Generic update of CMOS clock
config GENERIC_CMOS_UPDATE
bool
2012-05-22 01:16:18 +04:00
if GENERIC_CLOCKEVENTS
menu "Timers subsystem"
2011-08-11 01:21:01 +04:00
# Core internal switch. Selected by NO_HZ_COMMON / HIGH_RES_TIMERS. This is
2012-05-22 01:16:18 +04:00
# only related to the tick functionality. Oneshot clockevent devices
2017-11-01 21:04:51 +03:00
# are supported independent of this.
2012-05-22 01:16:18 +04:00
config TICK_ONESHOT
bool
2011-08-11 01:21:01 +04:00
config NO_HZ_COMMON
bool
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
select TICK_ONESHOT
2011-08-11 01:21:01 +04:00
choice
prompt "Timer tick handling"
default NO_HZ_IDLE if NO_HZ
2013-04-13 18:53:35 +04:00
config HZ_PERIODIC
2011-08-11 01:21:01 +04: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-22 01:16:18 +04:00
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
2011-08-11 01:21:01 +04:00
select NO_HZ_COMMON
2012-05-22 01:16:18 +04:00
help
2011-08-11 01:21:01 +04: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-22 01:16:18 +04:00
2013-04-12 18:45:34 +04:00
config NO_HZ_FULL
2013-04-13 19:04:04 +04:00
bool "Full dynticks system (tickless)"
2011-08-11 01:21:01 +04:00
# NO_HZ_COMMON dependency
2011-08-11 01:21:01 +04:00
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
2013-04-13 19:04:04 +04:00
# We need at least one periodic CPU for timekeeping
depends on SMP
depends on HAVE_CONTEXT_TRACKING
2013-04-26 17:16:31 +04:00
# VIRT_CPU_ACCOUNTING_GEN dependency
2013-09-17 02:28:21 +04:00
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
2011-08-11 01:21:01 +04:00
select NO_HZ_COMMON
2011-08-11 01:21:01 +04:00
select RCU_NOCB_CPU
2013-04-26 17:16:31 +04:00
select VIRT_CPU_ACCOUNTING_GEN
2013-04-18 02:15:40 +04:00
select IRQ_WORK
2017-12-14 21:18:25 +03:00
select CPU_ISOLATION
2011-08-11 01:21:01 +04:00
help
Adaptively try to shutdown the tick whenever possible, even when
2012-12-18 20:32:19 +04: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 18:45:34 +04:00
You need to fill up the nohz_full boot parameter with the
2012-12-18 20:32:19 +04: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-11 01:21:01 +04:00
endchoice
2013-04-12 18:40:12 +04: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-22 01:16:18 +04: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