2007-02-16 10:28:03 +01: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-15 17:09:49 +01:00
|
|
|
# Platforms has a persistent clock
|
2013-01-26 02:08:12 +01:00
|
|
|
config ALWAYS_USE_PERSISTENT_CLOCK
|
2013-01-15 17:09:49 +01:00
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2012-09-12 01:58:13 +02:00
|
|
|
# Timekeeping vsyscall support
|
|
|
|
config GENERIC_TIME_VSYSCALL
|
|
|
|
bool
|
|
|
|
|
2012-05-18 09:59:57 +02:00
|
|
|
# Timekeeping vsyscall support
|
2012-09-04 21:34:21 +02: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 18:05:22 +01: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"
|
|
|
|
|
|
|
|
# Core internal switch. Selected by NO_HZ / HIGH_RES_TIMERS. This is
|
|
|
|
# only related to the tick functionality. Oneshot clockevent devices
|
|
|
|
# are supported independ of this.
|
|
|
|
config TICK_ONESHOT
|
|
|
|
bool
|
|
|
|
|
|
|
|
config NO_HZ
|
|
|
|
bool "Tickless System (Dynamic Ticks)"
|
|
|
|
depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
|
|
|
|
select TICK_ONESHOT
|
|
|
|
help
|
|
|
|
This option enables a tickless system: timer interrupts will
|
|
|
|
only trigger on an as-needed basis both when the system is
|
|
|
|
busy and when the system is idle.
|
|
|
|
|
2012-12-18 17:32:19 +01:00
|
|
|
config NO_HZ_EXTENDED
|
|
|
|
bool "Full dynticks system"
|
|
|
|
depends on NO_HZ && RCU_USER_QS && VIRT_CPU_ACCOUNTING_GEN && RCU_NOCB_CPU && SMP
|
|
|
|
select CONTEXT_TRACKING_FORCE
|
|
|
|
help
|
|
|
|
Adaptively try to shutdown the tick whenever possible, even when
|
|
|
|
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.
|
|
|
|
|
|
|
|
You need to fill up the nohz_extended boot parameter with the
|
|
|
|
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.
|
|
|
|
|
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
|