linux-imx/kernel/time/Kconfig
Thomas Gleixner d67f34c19a clocksource: Provide clocksource_arch_init()
Architectures have extra archdata in the clocksource, e.g. for VDSO
support. There are no sanity checks or general initializations for this
available. Add support for that.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Andy Lutomirski <luto@kernel.org>
Acked-by: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Matt Rickard <matt@softrans.com.au>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: devel@linuxdriverproject.org
Cc: virtualization@lists.linux-foundation.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Juergen Gross <jgross@suse.com>
Link: https://lkml.kernel.org/r/20180917130706.973042587@linutronix.de
2018-10-04 23:00:24 +02:00

3.6 KiB

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

Architecture has extra clocksource init called from registration

config ARCH_CLOCKSOURCE_INIT 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