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
2013-01-16 00:09:49 +08:00
# Platforms has a persistent clock
2013-01-25 17:08:12 -08:00
config ALWAYS_USE_PERSISTENT_CLOCK
2013-01-16 00:09:49 +08:00
bool
default n
2012-09-11 19:58:13 -04:00
# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL
bool
2012-05-18 09:59:57 +02:00
# Timekeeping vsyscall support
2012-09-04 15:34:21 -04:00
config GENERIC_TIME_VSYSCALL_OLD
2012-05-18 09:59:57 +02:00
bool
# ktime_t scalar 64bit nsec representation
config KTIME_SCALAR
bool
# Old style timekeeping
config ARCH_USES_GETTIMEOFFSET
bool
# The generic clock events infrastructure
config GENERIC_CLOCKEVENTS
bool
2012-05-21 23:16:18 +02:00
# Migration helper. Builds, but does not invoke
config GENERIC_CLOCKEVENTS_BUILD
bool
default y
depends on GENERIC_CLOCKEVENTS
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
# are supported independ of this.
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
config PERIODIC_HZ
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
2011-08-10 23:21:01 +02:00
bool "Full dynticks system (tickless single task)"
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
# RCU_USER_QS
depends on HAVE_CONTEXT_TRACKING && SMP
# RCU_NOCB_CPU dependency
depends on TREE_RCU || TREE_PREEMPT_RCU
depends on 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_USER_QS
select RCU_NOCB_CPU
select CONTEXT_TRACKING_FORCE
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