123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #
- # 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 / 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.
- config NO_HZ_EXTENDED
- bool "Full dynticks system"
- # NO_HZ 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
- 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
|