Commit 0774a6ed authored by Arnd Bergmann's avatar Arnd Bergmann

timekeeping: default GENERIC_CLOCKEVENTS to enabled

Almost all machines use GENERIC_CLOCKEVENTS, so it feels wrong to
require each one to select that symbol manually.

Instead, enable it whenever CONFIG_LEGACY_TIMER_TICK is disabled as
a simplification. It should be possible to select both
GENERIC_CLOCKEVENTS and LEGACY_TIMER_TICK from an architecture now
and decide at runtime between the two.

For the clockevents arch-support.txt file, this means that additional
architectures are marked as TODO when they have at least one machine
that still uses LEGACY_TIMER_TICK, rather than being marked 'ok' when
at least one machine has been converted. This means that both m68k and
arm (for riscpc) revert to TODO.

At this point, we could just always enable CONFIG_GENERIC_CLOCKEVENTS
rather than leaving it off when not needed. I built an m68k
defconfig kernel (using gcc-10.1.0) and found that this would add
around 5.5KB in kernel image size:

   text	   data	    bss	    dec	    hex	filename
3861936	1092236	 196656	5150828	 4e986c	obj-m68k/vmlinux-no-clockevent
3866201	1093832	 196184	5156217	 4ead79	obj-m68k/vmlinux-clockevent

On Arm (MACH_RPC), that difference appears to be twice as large,
around 11KB on top of an 6MB vmlinux.
Reviewed-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Tested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 56cc7b8a
# #
# Feature name: clockevents # Feature name: clockevents
# Kconfig: GENERIC_CLOCKEVENTS # Kconfig: !LEGACY_TIMER_TICK
# description: arch support generic clock events # description: arch support generic clock events
# #
----------------------- -----------------------
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
----------------------- -----------------------
| alpha: | ok | | alpha: | ok |
| arc: | ok | | arc: | ok |
| arm: | ok | | arm: | TODO |
| arm64: | ok | | arm64: | ok |
| c6x: | ok | | c6x: | ok |
| csky: | ok | | csky: | ok |
| h8300: | ok | | h8300: | ok |
| hexagon: | ok | | hexagon: | ok |
| ia64: | TODO | | ia64: | TODO |
| m68k: | ok | | m68k: | TODO |
| microblaze: | ok | | microblaze: | ok |
| mips: | ok | | mips: | ok |
| nds32: | ok | | nds32: | ok |
......
...@@ -27,7 +27,6 @@ config ALPHA ...@@ -27,7 +27,6 @@ config ALPHA
select ARCH_WANT_IPC_PARSE_VERSION select ARCH_WANT_IPC_PARSE_VERSION
select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_HAVE_NMI_SAFE_CMPXCHG
select AUDIT_ARCH select AUDIT_ARCH
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_VULNERABILITIES select GENERIC_CPU_VULNERABILITIES
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNCPY_FROM_USER
......
...@@ -19,7 +19,6 @@ config ARC ...@@ -19,7 +19,6 @@ config ARC
select COMMON_CLK select COMMON_CLK
select DMA_DIRECT_REMAP select DMA_DIRECT_REMAP
select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC) select GENERIC_ATOMIC64 if !ISA_ARCV2 || !(ARC_HAS_LL64 && ARC_HAS_LLSC)
select GENERIC_CLOCKEVENTS
select GENERIC_FIND_FIRST_BIT select GENERIC_FIND_FIRST_BIT
# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -321,7 +321,6 @@ config ARCH_MULTIPLATFORM ...@@ -321,7 +321,6 @@ config ARCH_MULTIPLATFORM
select AUTO_ZRELADDR select AUTO_ZRELADDR
select TIMER_OF select TIMER_OF
select COMMON_CLK select COMMON_CLK
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select HAVE_PCI select HAVE_PCI
select PCI_DOMAINS_GENERIC if PCI select PCI_DOMAINS_GENERIC if PCI
...@@ -336,7 +335,6 @@ config ARM_SINGLE_ARMV7M ...@@ -336,7 +335,6 @@ config ARM_SINGLE_ARMV7M
select TIMER_OF select TIMER_OF
select COMMON_CLK select COMMON_CLK
select CPU_V7M select CPU_V7M
select GENERIC_CLOCKEVENTS
select NO_IOPORT_MAP select NO_IOPORT_MAP
select SPARSE_IRQ select SPARSE_IRQ
select USE_OF select USE_OF
...@@ -351,7 +349,6 @@ config ARCH_EP93XX ...@@ -351,7 +349,6 @@ config ARCH_EP93XX
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select CLKSRC_MMIO select CLKSRC_MMIO
select CPU_ARM920T select CPU_ARM920T
select GENERIC_CLOCKEVENTS
select GPIOLIB select GPIOLIB
select HAVE_LEGACY_CLK select HAVE_LEGACY_CLK
help help
...@@ -361,7 +358,6 @@ config ARCH_FOOTBRIDGE ...@@ -361,7 +358,6 @@ config ARCH_FOOTBRIDGE
bool "FootBridge" bool "FootBridge"
select CPU_SA110 select CPU_SA110
select FOOTBRIDGE select FOOTBRIDGE
select GENERIC_CLOCKEVENTS
select HAVE_IDE select HAVE_IDE
select NEED_MACH_IO_H if !MMU select NEED_MACH_IO_H if !MMU
select NEED_MACH_MEMORY_H select NEED_MACH_MEMORY_H
...@@ -389,7 +385,6 @@ config ARCH_IXP4XX ...@@ -389,7 +385,6 @@ config ARCH_IXP4XX
select ARCH_SUPPORTS_BIG_ENDIAN select ARCH_SUPPORTS_BIG_ENDIAN
select CPU_XSCALE select CPU_XSCALE
select DMABOUNCE if PCI select DMABOUNCE if PCI
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select GPIO_IXP4XX select GPIO_IXP4XX
select GPIOLIB select GPIOLIB
...@@ -405,7 +400,6 @@ config ARCH_IXP4XX ...@@ -405,7 +400,6 @@ config ARCH_IXP4XX
config ARCH_DOVE config ARCH_DOVE
bool "Marvell Dove" bool "Marvell Dove"
select CPU_PJ4 select CPU_PJ4
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select GPIOLIB select GPIOLIB
select HAVE_PCI select HAVE_PCI
...@@ -429,7 +423,6 @@ config ARCH_PXA ...@@ -429,7 +423,6 @@ config ARCH_PXA
select CLKSRC_MMIO select CLKSRC_MMIO
select TIMER_OF select TIMER_OF
select CPU_XSCALE if !CPU_XSC3 select CPU_XSCALE if !CPU_XSC3
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select GPIO_PXA select GPIO_PXA
select GPIOLIB select GPIOLIB
...@@ -470,7 +463,6 @@ config ARCH_SA1100 ...@@ -470,7 +463,6 @@ config ARCH_SA1100
select COMMON_CLK select COMMON_CLK
select CPU_FREQ select CPU_FREQ
select CPU_SA1100 select CPU_SA1100
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select GPIOLIB select GPIOLIB
select HAVE_IDE select HAVE_IDE
...@@ -485,7 +477,6 @@ config ARCH_S3C24XX ...@@ -485,7 +477,6 @@ config ARCH_S3C24XX
bool "Samsung S3C24XX SoCs" bool "Samsung S3C24XX SoCs"
select ATAGS select ATAGS
select CLKSRC_SAMSUNG_PWM select CLKSRC_SAMSUNG_PWM
select GENERIC_CLOCKEVENTS
select GPIO_SAMSUNG select GPIO_SAMSUNG
select GPIOLIB select GPIOLIB
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
...@@ -509,7 +500,6 @@ config ARCH_OMAP1 ...@@ -509,7 +500,6 @@ config ARCH_OMAP1
select ARCH_OMAP select ARCH_OMAP
select CLKDEV_LOOKUP select CLKDEV_LOOKUP
select CLKSRC_MMIO select CLKSRC_MMIO
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select GENERIC_IRQ_MULTI_HANDLER select GENERIC_IRQ_MULTI_HANDLER
select GPIOLIB select GPIOLIB
...@@ -772,7 +762,6 @@ config ARCH_ACORN ...@@ -772,7 +762,6 @@ config ARCH_ACORN
config PLAT_IOP config PLAT_IOP
bool bool
select GENERIC_CLOCKEVENTS
config PLAT_ORION config PLAT_ORION
bool bool
...@@ -1163,7 +1152,6 @@ config HAVE_SMP ...@@ -1163,7 +1152,6 @@ config HAVE_SMP
config SMP config SMP
bool "Symmetric Multi-Processing" bool "Symmetric Multi-Processing"
depends on CPU_V6K || CPU_V7 depends on CPU_V6K || CPU_V7
depends on GENERIC_CLOCKEVENTS
depends on HAVE_SMP depends on HAVE_SMP
depends on MMU || ARM_MPU depends on MMU || ARM_MPU
select IRQ_WORK select IRQ_WORK
......
...@@ -101,7 +101,6 @@ config ARM64 ...@@ -101,7 +101,6 @@ config ARM64
select FRAME_POINTER select FRAME_POINTER
select GENERIC_ALLOCATOR select GENERIC_ALLOCATOR
select GENERIC_ARCH_TOPOLOGY select GENERIC_ARCH_TOPOLOGY
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST select GENERIC_CLOCKEVENTS_BROADCAST
select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_AUTOPROBE
select GENERIC_CPU_VULNERABILITIES select GENERIC_CPU_VULNERABILITIES
......
...@@ -256,7 +256,6 @@ config ARCH_TEGRA ...@@ -256,7 +256,6 @@ config ARCH_TEGRA
select ARM_GIC_PM select ARM_GIC_PM
select CLKSRC_MMIO select CLKSRC_MMIO
select TIMER_OF select TIMER_OF
select GENERIC_CLOCKEVENTS
select GPIOLIB select GPIOLIB
select PINCTRL select PINCTRL
select PM select PM
......
...@@ -19,7 +19,6 @@ config C6X ...@@ -19,7 +19,6 @@ config C6X
select IRQ_DOMAIN select IRQ_DOMAIN
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
select GENERIC_CLOCKEVENTS
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select MMU_GATHER_NO_RANGE if MMU select MMU_GATHER_NO_RANGE if MMU
select SET_FS select SET_FS
......
...@@ -28,7 +28,6 @@ config CSKY ...@@ -28,7 +28,6 @@ config CSKY
select GENERIC_LIB_UCMPDI2 select GENERIC_LIB_UCMPDI2
select GENERIC_ALLOCATOR select GENERIC_ALLOCATOR
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
......
...@@ -12,7 +12,6 @@ config H8300 ...@@ -12,7 +12,6 @@ config H8300
select FRAME_POINTER select FRAME_POINTER
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select GENERIC_CLOCKEVENTS
select COMMON_CLK select COMMON_CLK
select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_FRAME_POINTERS
select OF select OF
......
...@@ -27,7 +27,6 @@ config HEXAGON ...@@ -27,7 +27,6 @@ config HEXAGON
select GENERIC_IOMAP select GENERIC_IOMAP
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select STACKTRACE_SUPPORT select STACKTRACE_SUPPORT
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST select GENERIC_CLOCKEVENTS_BROADCAST
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
......
...@@ -318,7 +318,6 @@ config M54xx ...@@ -318,7 +318,6 @@ config M54xx
config COLDFIRE_PIT_TIMER config COLDFIRE_PIT_TIMER
bool bool
select GENERIC_CLOCKEVENTS
config COLDFIRE_TIMERS config COLDFIRE_TIMERS
bool bool
......
...@@ -17,7 +17,6 @@ config MICROBLAZE ...@@ -17,7 +17,6 @@ config MICROBLAZE
select COMMON_CLK select COMMON_CLK
select DMA_DIRECT_REMAP if MMU select DMA_DIRECT_REMAP if MMU
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_IDLE_POLL_SETUP select GENERIC_IDLE_POLL_SETUP
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
......
...@@ -21,7 +21,6 @@ config MIPS ...@@ -21,7 +21,6 @@ config MIPS
select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1) select CPU_NO_EFFICIENT_FFS if (TARGET_ISA_REV < 1)
select CPU_PM if CPU_IDLE select CPU_PM if CPU_IDLE
select GENERIC_ATOMIC64 if !64BIT select GENERIC_ATOMIC64 if !64BIT
select GENERIC_CLOCKEVENTS
select GENERIC_CMOS_UPDATE select GENERIC_CMOS_UPDATE
select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_AUTOPROBE
select GENERIC_GETTIMEOFDAY select GENERIC_GETTIMEOFDAY
......
...@@ -17,7 +17,6 @@ config NDS32 ...@@ -17,7 +17,6 @@ config NDS32
select DMA_DIRECT_REMAP select DMA_DIRECT_REMAP
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_IOREMAP select GENERIC_IOREMAP
......
...@@ -10,7 +10,6 @@ config NIOS2 ...@@ -10,7 +10,6 @@ config NIOS2
select COMMON_CLK select COMMON_CLK
select TIMER_OF select TIMER_OF
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -24,7 +24,6 @@ config OPENRISC ...@@ -24,7 +24,6 @@ config OPENRISC
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select HAVE_UID16 select HAVE_UID16
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST select GENERIC_CLOCKEVENTS_BROADCAST
select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER select GENERIC_STRNLEN_USER
......
...@@ -163,7 +163,6 @@ config PPC ...@@ -163,7 +163,6 @@ config PPC
select EDAC_ATOMIC_SCRUB select EDAC_ATOMIC_SCRUB
select EDAC_SUPPORT select EDAC_SUPPORT
select GENERIC_ATOMIC64 if PPC32 select GENERIC_ATOMIC64 if PPC32
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_CLOCKEVENTS_BROADCAST if SMP
select GENERIC_CMOS_UPDATE select GENERIC_CMOS_UPDATE
select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_AUTOPROBE
......
...@@ -37,7 +37,6 @@ config RISCV ...@@ -37,7 +37,6 @@ config RISCV
select EDAC_SUPPORT select EDAC_SUPPORT
select GENERIC_ARCH_TOPOLOGY if SMP select GENERIC_ARCH_TOPOLOGY if SMP
select GENERIC_ATOMIC64 if !64BIT select GENERIC_ATOMIC64 if !64BIT
select GENERIC_CLOCKEVENTS
select GENERIC_EARLY_IOREMAP select GENERIC_EARLY_IOREMAP
select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO
select GENERIC_IOREMAP select GENERIC_IOREMAP
......
...@@ -116,7 +116,6 @@ config S390 ...@@ -116,7 +116,6 @@ config S390
select CLONE_BACKWARDS2 select CLONE_BACKWARDS2
select DMA_OPS if PCI select DMA_OPS if PCI
select DYNAMIC_FTRACE if FUNCTION_TRACER select DYNAMIC_FTRACE if FUNCTION_TRACER
select GENERIC_CLOCKEVENTS
select GENERIC_CPU_AUTOPROBE select GENERIC_CPU_AUTOPROBE
select GENERIC_CPU_VULNERABILITIES select GENERIC_CPU_VULNERABILITIES
select GENERIC_FIND_FIRST_BIT select GENERIC_FIND_FIRST_BIT
......
...@@ -16,7 +16,6 @@ config SUPERH ...@@ -16,7 +16,6 @@ config SUPERH
select CPU_NO_EFFICIENT_FFS select CPU_NO_EFFICIENT_FFS
select DMA_DECLARE_COHERENT select DMA_DECLARE_COHERENT
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
select GENERIC_IDLE_POLL_SETUP select GENERIC_IDLE_POLL_SETUP
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
......
...@@ -39,7 +39,6 @@ config SPARC ...@@ -39,7 +39,6 @@ config SPARC
select HAVE_EBPF_JIT if SPARC64 select HAVE_EBPF_JIT if SPARC64
select HAVE_DEBUG_BUGVERBOSE select HAVE_DEBUG_BUGVERBOSE
select GENERIC_SMP_IDLE_THREAD select GENERIC_SMP_IDLE_THREAD
select GENERIC_CLOCKEVENTS
select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER select GENERIC_STRNLEN_USER
select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA
......
...@@ -17,7 +17,6 @@ config UML ...@@ -17,7 +17,6 @@ config UML
select NO_DMA select NO_DMA
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_CPU_DEVICES select GENERIC_CPU_DEVICES
select GENERIC_CLOCKEVENTS
select HAVE_GCC_PLUGINS select HAVE_GCC_PLUGINS
select SET_FS select SET_FS
select TTY # Needed for line.c select TTY # Needed for line.c
......
...@@ -108,7 +108,6 @@ config X86 ...@@ -108,7 +108,6 @@ config X86
select DCACHE_WORD_ACCESS select DCACHE_WORD_ACCESS
select EDAC_ATOMIC_SCRUB select EDAC_ATOMIC_SCRUB
select EDAC_SUPPORT select EDAC_SUPPORT
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC) select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
select GENERIC_CLOCKEVENTS_MIN_ADJUST select GENERIC_CLOCKEVENTS_MIN_ADJUST
select GENERIC_CMOS_UPDATE select GENERIC_CMOS_UPDATE
......
...@@ -16,7 +16,6 @@ config XTENSA ...@@ -16,7 +16,6 @@ config XTENSA
select COMMON_CLK select COMMON_CLK
select DMA_REMAP if MMU select DMA_REMAP if MMU
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
select GENERIC_CLOCKEVENTS
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_PCI_IOMAP select GENERIC_PCI_IOMAP
select GENERIC_SCHED_CLOCK select GENERIC_SCHED_CLOCK
......
...@@ -28,7 +28,7 @@ config GENERIC_TIME_VSYSCALL ...@@ -28,7 +28,7 @@ config GENERIC_TIME_VSYSCALL
# The generic clock events infrastructure # The generic clock events infrastructure
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
bool def_bool !LEGACY_TIMER_TICK
# Architecture can handle broadcast in a driver-agnostic way # Architecture can handle broadcast in a driver-agnostic way
config ARCH_HAS_TICK_BROADCAST config ARCH_HAS_TICK_BROADCAST
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment