123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #
- # 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
- # Old style timekeeping
- config ARCH_USES_GETTIMEOFFSET
- bool
- # The generic clock events infrastructure
- config GENERIC_CLOCKEVENTS
- bool
- # 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 independent 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
- depends on HAVE_CONTEXT_TRACKING
- # VIRT_CPU_ACCOUNTING_GEN dependency
- depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
- select NO_HZ_COMMON
- select RCU_NOCB_CPU
- select VIRT_CPU_ACCOUNTING_GEN
- select IRQ_WORK
- select CPU_ISOLATION
- 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
- 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
|