瀏覽代碼

kconfig: include kernel/Kconfig.preempt from init/Kconfig

Almost all architectures include it.  Add a ARCH_NO_PREEMPT symbol to
disable preempt support for alpha, hexagon, non-coldfire m68k and
user mode Linux.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Christoph Hellwig 7 年之前
父節點
當前提交
87a4c37599

+ 3 - 0
arch/Kconfig

@@ -881,6 +881,9 @@ config COMPAT_32BIT_TIME
 config ARCH_NO_COHERENT_DMA_MMAP
 config ARCH_NO_COHERENT_DMA_MMAP
 	bool
 	bool
 
 
+config ARCH_NO_PREEMPT
+	bool
+
 config CPU_NO_EFFICIENT_FFS
 config CPU_NO_EFFICIENT_FFS
 	def_bool n
 	def_bool n
 
 

+ 1 - 0
arch/alpha/Kconfig

@@ -4,6 +4,7 @@ config ALPHA
 	default y
 	default y
 	select ARCH_MIGHT_HAVE_PC_PARPORT
 	select ARCH_MIGHT_HAVE_PC_PARPORT
 	select ARCH_MIGHT_HAVE_PC_SERIO
 	select ARCH_MIGHT_HAVE_PC_SERIO
+	select ARCH_NO_PREEMPT
 	select ARCH_USE_CMPXCHG_LOCKREF
 	select ARCH_USE_CMPXCHG_LOCKREF
 	select HAVE_AOUT
 	select HAVE_AOUT
 	select HAVE_IDE
 	select HAVE_IDE

+ 0 - 2
arch/arc/Kconfig

@@ -545,8 +545,6 @@ config ARC_BUILTIN_DTB_NAME
 	  Set the name of the DTB to embed in the vmlinux binary
 	  Set the name of the DTB to embed in the vmlinux binary
 	  Leaving it blank selects the minimal "skeleton" dtb
 	  Leaving it blank selects the minimal "skeleton" dtb
 
 
-source "kernel/Kconfig.preempt"
-
 endmenu	 # "ARC Architecture Configuration"
 endmenu	 # "ARC Architecture Configuration"
 
 
 config FORCE_MAX_ZONEORDER
 config FORCE_MAX_ZONEORDER

+ 0 - 2
arch/arm/Kconfig

@@ -1481,8 +1481,6 @@ config ARCH_NR_GPIO
 
 
 	  If unsure, leave the default value.
 	  If unsure, leave the default value.
 
 
-source kernel/Kconfig.preempt
-
 config HZ_FIXED
 config HZ_FIXED
 	int
 	int
 	default 200 if ARCH_EBSA110
 	default 200 if ARCH_EBSA110

+ 0 - 1
arch/arm64/Kconfig

@@ -752,7 +752,6 @@ config HOLES_IN_ZONE
 	def_bool y
 	def_bool y
 	depends on NUMA
 	depends on NUMA
 
 
-source kernel/Kconfig.preempt
 source kernel/Kconfig.hz
 source kernel/Kconfig.hz
 
 
 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 config ARCH_SUPPORTS_DEBUG_PAGEALLOC

+ 0 - 2
arch/c6x/Kconfig

@@ -110,8 +110,6 @@ config KERNEL_RAM_BASE_ADDRESS
 	default 0xe0000000 if SOC_TMS320C6472
 	default 0xe0000000 if SOC_TMS320C6472
 	default 0x80000000
 	default 0x80000000
 
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 endmenu
 endmenu

+ 0 - 6
arch/h8300/Kconfig

@@ -49,9 +49,3 @@ config NR_CPUS
 	default 1
 	default 1
 
 
 source "arch/h8300/Kconfig.cpu"
 source "arch/h8300/Kconfig.cpu"
-
-menu "Kernel Features"
-
-source "kernel/Kconfig.preempt"
-
-endmenu

+ 1 - 0
arch/hexagon/Kconfig

@@ -4,6 +4,7 @@ comment "Linux Kernel Configuration for Hexagon"
 
 
 config HEXAGON
 config HEXAGON
 	def_bool y
 	def_bool y
+	select ARCH_NO_PREEMPT
 	select HAVE_OPROFILE
 	select HAVE_OPROFILE
 	# Other pending projects/to-do items.
 	# Other pending projects/to-do items.
 	# select HAVE_REGS_AND_STACK_ACCESS_API
 	# select HAVE_REGS_AND_STACK_ACCESS_API

+ 0 - 2
arch/ia64/Kconfig

@@ -364,8 +364,6 @@ config FORCE_CPEI_RETARGET
 	This option it useful to enable this feature on older BIOS's as well.
 	This option it useful to enable this feature on older BIOS's as well.
 	You can also enable this by using boot command line option force_cpei=1.
 	You can also enable this by using boot command line option force_cpei=1.
 
 
-source "kernel/Kconfig.preempt"
-
 config ARCH_SELECT_MEMORY_MODEL
 config ARCH_SELECT_MEMORY_MODEL
 	def_bool y
 	def_bool y
 
 

+ 1 - 4
arch/m68k/Kconfig

@@ -4,6 +4,7 @@ config M68K
 	default y
 	default y
 	select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
 	select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
 	select ARCH_NO_COHERENT_DMA_MMAP if !MMU
 	select ARCH_NO_COHERENT_DMA_MMAP if !MMU
+	select ARCH_NO_PREEMPT if !COLDFIRE
 	select HAVE_IDE
 	select HAVE_IDE
 	select HAVE_AOUT if MMU
 	select HAVE_AOUT if MMU
 	select HAVE_DEBUG_BUGVERBOSE
 	select HAVE_DEBUG_BUGVERBOSE
@@ -129,10 +130,6 @@ endmenu
 
 
 menu "Kernel Features"
 menu "Kernel Features"
 
 
-if COLDFIRE
-source "kernel/Kconfig.preempt"
-endif
-
 endmenu
 endmenu
 
 
 if !MMU
 if !MMU

+ 0 - 2
arch/microblaze/Kconfig

@@ -87,8 +87,6 @@ source "arch/microblaze/Kconfig.platform"
 
 
 menu "Processor type and features"
 menu "Processor type and features"
 
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 config MMU
 config MMU

+ 0 - 2
arch/mips/Kconfig

@@ -2818,8 +2818,6 @@ config HZ
 config SCHED_HRTICK
 config SCHED_HRTICK
 	def_bool HIGH_RES_TIMERS
 	def_bool HIGH_RES_TIMERS
 
 
-source "kernel/Kconfig.preempt"
-
 config KEXEC
 config KEXEC
 	bool "Kexec system call"
 	bool "Kexec system call"
 	select KEXEC_CORE
 	select KEXEC_CORE

+ 0 - 1
arch/nds32/Kconfig

@@ -88,6 +88,5 @@ config NDS32_BUILTIN_DTB
 endmenu
 endmenu
 
 
 menu "Kernel Features"
 menu "Kernel Features"
-source "kernel/Kconfig.preempt"
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 endmenu
 endmenu

+ 0 - 2
arch/nios2/Kconfig

@@ -47,8 +47,6 @@ config TRACE_IRQFLAGS_SUPPORT
 
 
 menu "Kernel features"
 menu "Kernel features"
 
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 config FORCE_MAX_ZONEORDER
 config FORCE_MAX_ZONEORDER

+ 0 - 1
arch/openrisc/Kconfig

@@ -143,7 +143,6 @@ config SMP
 	  If you don't know what to do here, say N.
 	  If you don't know what to do here, say N.
 
 
 source kernel/Kconfig.hz
 source kernel/Kconfig.hz
-source kernel/Kconfig.preempt
 
 
 config OPENRISC_NO_SPR_SR_DSX
 config OPENRISC_NO_SPR_SR_DSX
 	bool "use SPR_SR_DSX software emulation" if OR1K_1200
 	bool "use SPR_SR_DSX software emulation" if OR1K_1200

+ 0 - 1
arch/parisc/Kconfig

@@ -323,7 +323,6 @@ config NODES_SHIFT
 	default "3"
 	default "3"
 	depends on NEED_MULTIPLE_NODES
 	depends on NEED_MULTIPLE_NODES
 
 
-source "kernel/Kconfig.preempt"
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 config COMPAT
 config COMPAT

+ 0 - 1
arch/powerpc/Kconfig

@@ -393,7 +393,6 @@ config HIGHMEM
 	depends on PPC32
 	depends on PPC32
 
 
 source kernel/Kconfig.hz
 source kernel/Kconfig.hz
-source kernel/Kconfig.preempt
 
 
 config HUGETLB_PAGE_SIZE_VARIABLE
 config HUGETLB_PAGE_SIZE_VARIABLE
 	bool
 	bool

+ 0 - 2
arch/riscv/Kconfig

@@ -212,8 +212,6 @@ endmenu
 
 
 menu "Kernel type"
 menu "Kernel type"
 
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 endmenu
 endmenu

+ 0 - 2
arch/s390/Kconfig

@@ -511,8 +511,6 @@ config SCHED_TOPOLOGY
 	  making when dealing with machines that have multi-threading,
 	  making when dealing with machines that have multi-threading,
 	  multiple cores or multiple books.
 	  multiple cores or multiple books.
 
 
-source kernel/Kconfig.preempt
-
 source kernel/Kconfig.hz
 source kernel/Kconfig.hz
 
 
 config KEXEC
 config KEXEC

+ 0 - 2
arch/sh/Kconfig

@@ -709,8 +709,6 @@ config HOTPLUG_CPU
 	  Say Y here to experiment with turning CPUs off and on.  CPUs
 	  Say Y here to experiment with turning CPUs off and on.  CPUs
 	  can be controlled through /sys/devices/system/cpu.
 	  can be controlled through /sys/devices/system/cpu.
 
 
-source "kernel/Kconfig.preempt"
-
 config GUSA
 config GUSA
 	def_bool y
 	def_bool y
 	depends on !SMP && SUPERH32
 	depends on !SMP && SUPERH32

+ 0 - 2
arch/sparc/Kconfig

@@ -349,8 +349,6 @@ config SCHED_MC
 	  making when dealing with multi-core CPU chips at a cost of slightly
 	  making when dealing with multi-core CPU chips at a cost of slightly
 	  increased overhead in some places. If unsure say N here.
 	  increased overhead in some places. If unsure say N here.
 
 
-source "kernel/Kconfig.preempt"
-
 config CMDLINE_BOOL
 config CMDLINE_BOOL
 	bool "Default bootloader kernel arguments"
 	bool "Default bootloader kernel arguments"
 	depends on SPARC64
 	depends on SPARC64

+ 1 - 0
arch/um/Kconfig

@@ -6,6 +6,7 @@ config UML
 	bool
 	bool
 	default y
 	default y
 	select ARCH_HAS_KCOV
 	select ARCH_HAS_KCOV
+	select ARCH_NO_PREEMPT
 	select HAVE_ARCH_AUDITSYSCALL
 	select HAVE_ARCH_AUDITSYSCALL
 	select HAVE_ARCH_SECCOMP_FILTER
 	select HAVE_ARCH_SECCOMP_FILTER
 	select HAVE_UID16
 	select HAVE_UID16

+ 0 - 2
arch/unicore32/Kconfig

@@ -135,8 +135,6 @@ endmenu
 
 
 menu "Kernel Features"
 menu "Kernel Features"
 
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 source "kernel/Kconfig.hz"
 
 
 config LEDS
 config LEDS

+ 0 - 2
arch/x86/Kconfig

@@ -1039,8 +1039,6 @@ config SCHED_MC_PRIO
 
 
 	  If unsure say Y here.
 	  If unsure say Y here.
 
 
-source "kernel/Kconfig.preempt"
-
 config UP_LATE_INIT
 config UP_LATE_INIT
        def_bool y
        def_bool y
        depends on !SMP && X86_LOCAL_APIC
        depends on !SMP && X86_LOCAL_APIC

+ 0 - 2
arch/xtensa/Kconfig

@@ -173,8 +173,6 @@ config XTENSA_UNALIGNED_USER
 
 
 	  Say Y here to enable unaligned memory access in user space.
 	  Say Y here to enable unaligned memory access in user space.
 
 
-source "kernel/Kconfig.preempt"
-
 config HAVE_SMP
 config HAVE_SMP
 	bool "System Supports SMP (MX)"
 	bool "System Supports SMP (MX)"
 	depends on XTENSA_VARIANT_CUSTOM
 	depends on XTENSA_VARIANT_CUSTOM

+ 1 - 0
init/Kconfig

@@ -326,6 +326,7 @@ config AUDIT_TREE
 
 
 source "kernel/irq/Kconfig"
 source "kernel/irq/Kconfig"
 source "kernel/time/Kconfig"
 source "kernel/time/Kconfig"
+source "kernel/Kconfig.preempt"
 
 
 menu "CPU/Task time and stats accounting"
 menu "CPU/Task time and stats accounting"
 
 

+ 2 - 0
kernel/Kconfig.preempt

@@ -18,6 +18,7 @@ config PREEMPT_NONE
 
 
 config PREEMPT_VOLUNTARY
 config PREEMPT_VOLUNTARY
 	bool "Voluntary Kernel Preemption (Desktop)"
 	bool "Voluntary Kernel Preemption (Desktop)"
+	depends on !ARCH_NO_PREEMPT
 	help
 	help
 	  This option reduces the latency of the kernel by adding more
 	  This option reduces the latency of the kernel by adding more
 	  "explicit preemption points" to the kernel code. These new
 	  "explicit preemption points" to the kernel code. These new
@@ -35,6 +36,7 @@ config PREEMPT_VOLUNTARY
 
 
 config PREEMPT
 config PREEMPT
 	bool "Preemptible Kernel (Low-Latency Desktop)"
 	bool "Preemptible Kernel (Low-Latency Desktop)"
+	depends on !ARCH_NO_PREEMPT
 	select PREEMPT_COUNT
 	select PREEMPT_COUNT
 	select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
 	select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
 	help
 	help

+ 1 - 0
lib/Kconfig.debug

@@ -1195,6 +1195,7 @@ config DEBUG_ATOMIC_SLEEP
 	bool "Sleep inside atomic section checking"
 	bool "Sleep inside atomic section checking"
 	select PREEMPT_COUNT
 	select PREEMPT_COUNT
 	depends on DEBUG_KERNEL
 	depends on DEBUG_KERNEL
+	depends on !ARCH_NO_PREEMPT
 	help
 	help
 	  If you say Y here, various routines which may sleep will become very
 	  If you say Y here, various routines which may sleep will become very
 	  noisy if they are called inside atomic sections: when a spinlock is
 	  noisy if they are called inside atomic sections: when a spinlock is