168 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # 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
 | |
| 
 | |
| # Clocksources require validation of the clocksource against the last
 | |
| # cycle update - x86/TSC misfeature
 | |
| config CLOCKSOURCE_VALIDATE_LAST_CYCLE
 | |
| 	bool
 | |
| 
 | |
| # 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
 | |
| 
 | |
| choice
 | |
| 	prompt "Timer tick handling"
 | |
| 	default NO_HZ_IDLE if NO_HZ
 | |
| 
 | |
| config HZ_PERIODIC
 | |
| 	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)"
 | |
| 	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
 | |
| 	select NO_HZ_COMMON
 | |
| 	help
 | |
| 	  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.
 | |
| 
 | |
| config NO_HZ_FULL
 | |
| 	bool "Full dynticks system (tickless)"
 | |
| 	# NO_HZ_COMMON dependency
 | |
| 	depends on !ARCH_USES_GETTIMEOFFSET && GENERIC_CLOCKEVENTS
 | |
| 	# We need at least one periodic CPU for timekeeping
 | |
| 	depends on SMP
 | |
| 	# RCU_USER_QS dependency
 | |
| 	depends on HAVE_CONTEXT_TRACKING
 | |
| 	# VIRT_CPU_ACCOUNTING_GEN dependency
 | |
| 	depends on 64BIT
 | |
| 	select NO_HZ_COMMON
 | |
| 	select RCU_USER_QS
 | |
| 	select RCU_NOCB_CPU
 | |
| 	select VIRT_CPU_ACCOUNTING_GEN
 | |
| 	select CONTEXT_TRACKING_FORCE
 | |
| 	select IRQ_WORK
 | |
| 	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_full 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.
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| config NO_HZ_FULL_ALL
 | |
|        bool "Full dynticks system on all CPUs by default"
 | |
|        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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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
 | |
| 
 | |
| config UDELAY_TEST
 | |
| 	tristate "udelay test driver"
 | |
| 	default n
 | |
| 	help
 | |
| 	  This builds the "udelay_test" module that helps to make sure
 | |
| 	  that udelay() is working properly.
 |