2007-02-16 09:28:03 +00:00
|
|
|
#
|
|
|
|
# Timer subsystem related configuration options
|
|
|
|
#
|
2012-03-31 10:45:43 +00:00
|
|
|
|
2012-05-18 07:59:57 +00: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-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 23:58:13 +00:00
|
|
|
# Timekeeping vsyscall support
|
|
|
|
config GENERIC_TIME_VSYSCALL
|
|
|
|
bool
|
|
|
|
|
2012-05-18 07:59:57 +00:00
|
|
|
# Timekeeping vsyscall support
|
2012-09-04 19:34:21 +00:00
|
|
|
config GENERIC_TIME_VSYSCALL_OLD
|
2012-05-18 07:59:57 +00:00
|
|
|
bool
|
|
|
|
|
|
|
|
# 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 07:59:57 +00:00
|
|
|
# Clockevents broadcasting infrastructure
|
|
|
|
config GENERIC_CLOCKEVENTS_BROADCAST
|
|
|
|
bool
|
|
|
|
depends on GENERIC_CLOCKEVENTS
|
|
|
|
|
2012-05-21 21:16:18 +00:00
|
|
|
# Automatically adjust the min. reprogramming time for
|
|
|
|
# clock event device
|
|
|
|
config GENERIC_CLOCKEVENTS_MIN_ADJUST
|
|
|
|
bool
|
|
|
|
|
2012-05-18 07:59:57 +00:00
|
|
|
# Generic update of CMOS clock
|
|
|
|
config GENERIC_CMOS_UPDATE
|
|
|
|
bool
|
2012-05-21 21:16:18 +00:00
|
|
|
|
|
|
|
if GENERIC_CLOCKEVENTS
|
|
|
|
menu "Timers subsystem"
|
|
|
|
|
2011-08-10 21:21:01 +00:00
|
|
|
# Core internal switch. Selected by NO_HZ_COMMON / HIGH_RES_TIMERS. This is
|
2012-05-21 21:16:18 +00:00
|
|
|
# only related to the tick functionality. Oneshot clockevent devices
|
|
|
|
# are supported independ of this.
|
|
|
|
config TICK_ONESHOT
|
|
|
|
bool
|
|
|
|
|
2011-08-10 21:21:01 +00:00
|
|
|
config NO_HZ_COMMON
|
|
|
|
bool
|
|
|
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
|
|
|
select TICK_ONESHOT
|
|
|
|
|
2011-08-10 21:21:01 +00:00
|
|
|
choice
|
|
|
|
prompt "Timer tick handling"
|
|
|
|
default NO_HZ_IDLE if NO_HZ
|
|
|
|
|
2013-04-13 14:53:35 +00:00
|
|
|
config HZ_PERIODIC
|
2011-08-10 21:21:01 +00: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 21:16:18 +00:00
|
|
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
2011-08-10 21:21:01 +00:00
|
|
|
select NO_HZ_COMMON
|
2012-05-21 21:16:18 +00:00
|
|
|
help
|
2011-08-10 21:21:01 +00: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 21:16:18 +00:00
|
|
|
|
2013-04-12 14:45:34 +00:00
|
|
|
config NO_HZ_FULL
|
2013-04-13 15:04:04 +00:00
|
|
|
bool "Full dynticks system (tickless)"
|
2011-08-10 21:21:01 +00:00
|
|
|
# NO_HZ_COMMON dependency
|
2011-08-10 21:21:01 +00:00
|
|
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
2013-04-13 15:04:04 +00:00
|
|
|
# We need at least one periodic CPU for timekeeping
|
|
|
|
depends on SMP
|
|
|
|
depends on HAVE_CONTEXT_TRACKING
|
2013-04-26 13:16:31 +00:00
|
|
|
# VIRT_CPU_ACCOUNTING_GEN dependency
|
2013-09-16 22:28:21 +00:00
|
|
|
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
|
2011-08-10 21:21:01 +00:00
|
|
|
select NO_HZ_COMMON
|
2011-08-10 21:21:01 +00:00
|
|
|
select RCU_NOCB_CPU
|
2013-04-26 13:16:31 +00:00
|
|
|
select VIRT_CPU_ACCOUNTING_GEN
|
2013-04-17 22:15:40 +00:00
|
|
|
select IRQ_WORK
|
2011-08-10 21:21:01 +00:00
|
|
|
help
|
|
|
|
Adaptively try to shutdown the tick whenever possible, even when
|
2012-12-18 16:32:19 +00: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 14:45:34 +00:00
|
|
|
You need to fill up the nohz_full boot parameter with the
|
2012-12-18 16:32:19 +00: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 21:21:01 +00:00
|
|
|
endchoice
|
|
|
|
|
2013-03-27 00:17:22 +00:00
|
|
|
config NO_HZ_FULL_ALL
|
2014-02-06 18:36:21 +00:00
|
|
|
bool "Full dynticks system on all CPUs by default (except CPU 0)"
|
2013-03-27 00:17:22 +00:00
|
|
|
depends on NO_HZ_FULL
|
|
|
|
help
|
|
|
|
If the user doesn't pass the nohz_full boot option to
|
|
|
|
define the range of full dynticks CPUs, consider that all
|
|
|
|
CPUs in the system are full dynticks by default.
|
|
|
|
Note the boot CPU will still be kept outside the range to
|
|
|
|
handle the timekeeping duty.
|
|
|
|
|
2013-04-12 14:40:12 +00: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 21:16:18 +00: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
|