diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index feccc1d37ecf..c1e5f07fab93 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1459,8 +1459,6 @@ endmenu menu "Kernel Features" -source "kernel/time/Kconfig" - config HAVE_SMP bool help diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 0bd13ab9f43b..f8bc2d27d148 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig @@ -61,8 +61,6 @@ source "kernel/Kconfig.freezer" menu "System Type and features" -source "kernel/time/Kconfig" - config SUBARCH_AVR32B bool config MMU diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index bc21de2e8fed..f7897eefa630 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig @@ -631,8 +631,6 @@ config GPTMR0_CLOCKSOURCE depends on !TICKSOURCE_GPTMR0 endmenu -source kernel/time/Kconfig - comment "Misc" choice diff --git a/arch/c6x/Kconfig b/arch/c6x/Kconfig index 30c04c658b9e..9d446eff2c04 100644 --- a/arch/c6x/Kconfig +++ b/arch/c6x/Kconfig @@ -132,7 +132,6 @@ source "mm/Kconfig" source "kernel/Kconfig.preempt" source "kernel/Kconfig.hz" -source "kernel/time/Kconfig" endmenu diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu index 15c22286ae79..321f3922728b 100644 --- a/arch/h8300/Kconfig.cpu +++ b/arch/h8300/Kconfig.cpu @@ -1,7 +1,5 @@ menu "Processor type and features" -source "kernel/time/Kconfig" - choice prompt "H8/300 platform" default H8300H_GENERIC diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index 7727ed9d2bf3..35f6c32d040c 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -183,7 +183,6 @@ endchoice source "mm/Kconfig" source "kernel/Kconfig.hz" -source "kernel/time/Kconfig" config GENERIC_GPIO bool "Generic GPIO support" diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 2f4b0f0610d6..cac5b6be572a 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -106,10 +106,6 @@ if COLDFIRE source "kernel/Kconfig.preempt" endif -if !MMU || COLDFIRE -source "kernel/time/Kconfig" -endif - source "mm/Kconfig" endmenu diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 3e786ac9a655..83460468998d 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -74,8 +74,6 @@ source "arch/microblaze/platform/Kconfig.platform" menu "Processor type and features" -source "kernel/time/Kconfig" - source "kernel/Kconfig.preempt" source "kernel/Kconfig.hz" diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index c9c330bc4e76..b65a730cba75 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -2205,8 +2205,6 @@ config NR_CPUS performance should round up your number of processors to the next power of two. -source "kernel/time/Kconfig" - # # Timer Interrupt Frequency Configuration # diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 7f78057af2f5..687f9b4a2ed6 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig @@ -226,7 +226,6 @@ config MN10300_USING_JTAG single-stepping, which are taken over completely by the JTAG unit. source "kernel/Kconfig.hz" -source "kernel/time/Kconfig" config MN10300_RTC bool "Using MN10300 RTC" diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index be04485431fe..70653039e79b 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -106,7 +106,6 @@ config OPENRISC_HAVE_INST_DIV endmenu -source "kernel/time/Kconfig" source kernel/Kconfig.hz source kernel/Kconfig.preempt source "mm/Kconfig" diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 901215f7a2f2..d47cf7ffa792 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -278,7 +278,6 @@ config HIGHMEM bool "High memory support" depends on PPC32 -source kernel/time/Kconfig source kernel/Kconfig.hz source kernel/Kconfig.preempt source "fs/Kconfig.binfmt" diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index f9edb9303a7e..d0325d9ae21f 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -131,8 +131,6 @@ menu "Base setup" comment "Processor type and features" -source "kernel/time/Kconfig" - config 64BIT def_bool y prompt "64 bit kernel" diff --git a/arch/score/Kconfig b/arch/score/Kconfig index f5d3b3237419..ba0f412920be 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig @@ -66,7 +66,6 @@ config MEMORY_START hex default 0xa0000000 -source "kernel/time/Kconfig" source "kernel/Kconfig.hz" source "kernel/Kconfig.preempt" diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index cffd8b0082d5..820dfe3c7b69 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -577,9 +577,6 @@ config SH_CLK_CPG_LEGACY depends on SH_CLK_CPG def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \ !CPU_SHX3 && !CPU_SUBTYPE_SH7757 - -source "kernel/time/Kconfig" - endmenu menu "CPU Frequency scaling" diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 33399d3d90bc..b5a035a5c53a 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -266,8 +266,6 @@ config HOTPLUG_CPU can be controlled through /sys/devices/system/cpu/cpu#. Say N if you want to disable CPU hotplug. -source "kernel/time/Kconfig" - if SPARC64 source "drivers/cpufreq/Kconfig" diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index b56772cac5d2..4eec3a1a72c0 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@ -136,8 +136,6 @@ config NR_CPUS smaller kernel memory footprint results from using a smaller value on chips with fewer tiles. -source "kernel/time/Kconfig" - source "kernel/Kconfig.hz" config KEXEC diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um index 70fd690964e4..bf87f25eb2de 100644 --- a/arch/um/Kconfig.um +++ b/arch/um/Kconfig.um @@ -10,7 +10,6 @@ config STATIC_LINK 2.75G) for UML. source "mm/Kconfig" -source "kernel/time/Kconfig" config LD_SCRIPT_STATIC bool diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig index a25ca7606bea..47ad5210606f 100644 --- a/arch/unicore32/Kconfig +++ b/arch/unicore32/Kconfig @@ -143,8 +143,6 @@ endmenu menu "Kernel Features" -source "kernel/time/Kconfig" - source "kernel/Kconfig.preempt" source "kernel/Kconfig.hz" diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 3b0a9217836a..1b1e0493ef7f 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -241,8 +241,6 @@ config ZONE_DMA If unsure, say Y. -source "kernel/time/Kconfig" - config SMP bool "Symmetric multi-processing support" ---help--- diff --git a/init/Kconfig b/init/Kconfig index 6cfd71d06463..528a0c4111cc 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -387,6 +387,7 @@ config AUDIT_LOGINUID_IMMUTABLE but may not be backwards compatible with older init systems. source "kernel/irq/Kconfig" +source "kernel/time/Kconfig" menu "RCU Subsystem" diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig index f6ebc4ff702a..fd42bd452b75 100644 --- a/kernel/time/Kconfig +++ b/kernel/time/Kconfig @@ -2,38 +2,6 @@ # Timer subsystem related configuration options # -# 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 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. - -config GENERIC_CLOCKEVENTS_BUILD - bool - default y - depends on GENERIC_CLOCKEVENTS - -config GENERIC_CLOCKEVENTS_MIN_ADJUST - bool - # Options selectable by arch Kconfig # Watchdog function for clocksources to detect instabilities @@ -60,11 +28,52 @@ config ARCH_USES_GETTIMEOFFSET config GENERIC_CLOCKEVENTS bool +# Migration helper. Builds, but does not invoke +config GENERIC_CLOCKEVENTS_BUILD + bool + default y + depends on GENERIC_CLOCKEVENTS + # 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 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