summaryrefslogblamecommitdiff
path: root/kernel/time/Kconfig
blob: c88fc43494c9e03e43217f12d75d6c8a7bb26ac7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14


                                               
 









                                                            
                                  
                                  


                 
                              



                              
                                













                                          





                                               



                                                            




                                         




                                                      


                              



                       
                                                                           




                                                                    




                                                                  


                                                                  
                           




                                                                      
                     
                                   
                                 





                                                                  
                           




                                                                         












                                                                               










                                                                    
#
# Timer subsystem related configuration options
#

# 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

# Platforms has a persistent clock
config ALWAYS_USE_PERSISTENT_CLOCK
	bool
	default n

# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL
	bool

# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL_OLD
	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

# Migration helper. Builds, but does not invoke
config GENERIC_CLOCKEVENTS_BUILD
	bool
	default y
	depends on GENERIC_CLOCKEVENTS

# Architecture can handle broadcast in a driver-agnostic way
config ARCH_HAS_TICK_BROADCAST
	bool

# Clockevents broadcasting infrastructure
config GENERIC_CLOCKEVENTS_BROADCAST
	bool
	depends on GENERIC_CLOCKEVENTS

# Automatically adjust the min. reprogramming time for
# clock event device
config GENERIC_CLOCKEVENTS_MIN_ADJUST
	bool

# Generic update of CMOS clock
config GENERIC_CMOS_UPDATE
	bool

if GENERIC_CLOCKEVENTS
menu "Timers subsystem"

# Core internal switch. Selected by NO_HZ_COMMON / 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_COMMON
	bool
	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
	select TICK_ONESHOT

config NO_HZ
	bool "Tickless System (Dynamic Ticks)"
	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
	select NO_HZ_COMMON
	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.

config NO_HZ_EXTENDED
	bool "Full dynticks system"
	# NO_HZ_COMMON dependency
	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
	select NO_HZ_COMMON
	select RCU_USER_QS
	select RCU_NOCB_CPU
	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.

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