Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a50a3f4b authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Ingo Molnar
Browse files

sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT



Add a new entry to the preemption menu which enables the real-time support
for the kernel. The choice is only enabled when an architecture supports
it.

It selects PREEMPT as the RT features depend on it. To achieve that the
existing PREEMPT choice is renamed to PREEMPT_LL which select PREEMPT as
well.

No functional change.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: default avatarClark Williams <williams@redhat.com>
Acked-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: default avatarFrederic Weisbecker <frederic@kernel.org>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Acked-by: default avatarDaniel Wagner <wagi@monom.org>
Acked-by: default avatarLuis Claudio R. Goncalves <lgoncalv@redhat.com>
Acked-by: default avatarJulia Cartwright <julia@ni.com>
Acked-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
Acked-by: default avatarGratian Crisan <gratian.crisan@ni.com>
Acked-by: default avatarSebastian Siewior <bigeasy@linutronix.de>
Cc: Andrew Morton <akpm@linuxfoundation.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1907172200190.1778@nanos.tec.linutronix.de


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent e3d85487
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -801,6 +801,9 @@ config ARCH_NO_COHERENT_DMA_MMAP
config ARCH_NO_PREEMPT
	bool

config ARCH_SUPPORTS_RT
	bool

config CPU_NO_EFFICIENT_FFS
	def_bool n

+23 −2
Original line number Diff line number Diff line
@@ -35,10 +35,10 @@ config PREEMPT_VOLUNTARY

	  Select this if you are building a kernel for a desktop system.

config PREEMPT
config PREEMPT_LL
	bool "Preemptible Kernel (Low-Latency Desktop)"
	depends on !ARCH_NO_PREEMPT
	select PREEMPT_COUNT
	select PREEMPT
	select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
	help
	  This option reduces the latency of the kernel by making
@@ -55,7 +55,28 @@ config PREEMPT
	  embedded system with latency requirements in the milliseconds
	  range.

config PREEMPT_RT
	bool "Fully Preemptible Kernel (Real-Time)"
	depends on EXPERT && ARCH_SUPPORTS_RT
	select PREEMPT
	help
	  This option turns the kernel into a real-time kernel by replacing
	  various locking primitives (spinlocks, rwlocks, etc.) with
	  preemptible priority-inheritance aware variants, enforcing
	  interrupt threading and introducing mechanisms to break up long
	  non-preemptible sections. This makes the kernel, except for very
	  low level and critical code pathes (entry code, scheduler, low
	  level interrupt handling) fully preemptible and brings most
	  execution contexts under scheduler control.

	  Select this if you are building a kernel for systems which
	  require real-time guarantees.

endchoice

config PREEMPT_COUNT
       bool

config PREEMPT
       bool
       select PREEMPT_COUNT