LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [patch 0/1] Kconfig: Introduce CONFIG_PREEMPT_RT
@ 2019-07-15 15:04 Thomas Gleixner
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
  0 siblings, 1 reply; 20+ messages in thread
From: Thomas Gleixner @ 2019-07-15 15:04 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker

Linus,

please consider to apply the following patch, which introduces the Kconfig
symbol CONFIG_PREEMPT_RT.

Rationale:

The real-time preemption patch set exists for almost 15 years now and while
the vast majority of infrastructure and enhancements have found their way
into the mainline kernel, the final integration of RT is still missing.

Over the course of the last few years, we have worked on reducing the
intrusivenness of the RT patches by refactoring kernel infrastructure to be
more real-time friendly. Almost all of these changes were benefitial to
the mainline kernel on their own, so there was no objection to integrate
them.

Though except for the still ongoing printk refactoring, the remaining
changes which are required to make RT a first class mainline citizen are
not longer arguable as immediately beneficial for the mainline kernel. Most
of them are either reordering code flows or adding RT specific functionality.
But this now has hit a wall and turned into a classic hen and egg problem:

  Maintainers are rightfully wary vs. these changes as they make only
  sense if the final integration of RT into the mainline kernel takes
  place.

Adding CONFIG_PREEMPT_RT aims to solve this as a clear sign that RT will be
fully integrated into the mainline kernel. The final integration of the
missing bits and pieces will be of course done with the same careful
approach as we have used in the past.

While I'm aware that you are not entirely enthusiastic about that, I think
that RT should receive the same treatment as any other widely used out of
tree functionality, which we have accepted into mainline over the years.

RT has become the de-facto standard real-time enhancement and is shipped by
enterprise, embedded and community distros. It's in use throughout a wide
range of industries: telecommunications, industrial automation, professional
audio, medical devices, data acquisition, automotive - just to name a
few major use cases.

RT development is backed by a Linuxfoundation project which is supported
by major stakeholders of this technology. The funding will continue over
the actual inclusion into mainline to make sure that the functionality is
neither introducing regressions, regressing itself, nor becomes subject
to bitrot. There is also a lifely user community around RT as well, so
contrary to the grim situation 5 years ago, it's a healthy project.

As RT is still a good vehicle to exercise rarely used code paths and to
detect hard to trigger issues, you could at least view it as a QA tool if
nothing else.

The current state of the RT patches against 5.2 is:

   365 files changed, 9396 insertions(+), 3209 deletions(-)

When the already queued changes, agreed on changes and the ongoing printk
work is taken out then the diffstat is reduced to:

   311 files changed, 6567 insertions(+), 1352 deletions(-)

Out of the 6567 insertions about 4000 lines are the self contained RT
infrastructure (lock substitutions, scheduler addons, etc.).

The remaining bits and pieces are smallish changes to places which need to
be slightly modified to cope with the RT semantics.

The current full RT set can be found here:

  git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-5.2.y-rt

Note that aside of the printk changes (which are under flux due to the
ongoing review/design discussions) also a large part of the rest is
not the final state as these changes still need to be discussed with
the relevant maintainers and we are still working hard on refinining
them and reducing the impact. So while the big picture is probably
good reflected, please take the details with a grain of salt.

Thanks,

	Thomas




^ permalink raw reply	[flat|nested] 20+ messages in thread

* [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 [patch 0/1] Kconfig: Introduce CONFIG_PREEMPT_RT Thomas Gleixner
@ 2019-07-15 15:04 ` Thomas Gleixner
  2019-07-15 19:47   ` Lukas Bulwahn
                     ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: Thomas Gleixner @ 2019-07-15 15:04 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker

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: Thomas Gleixner <tglx@linutronix.de>
---
 arch/Kconfig           |    3 +++
 kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -809,6 +809,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
 
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -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-preemtible sections. This makes the kernel, except for very
+	  low level and critical code pathes (entry code, scheduler, low
+	  level interrupt handling) fully preemtible 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



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
@ 2019-07-15 19:47   ` Lukas Bulwahn
  2019-07-16 18:20   ` Paul E. McKenney
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Lukas Bulwahn @ 2019-07-15 19:47 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Paul McKenney, Christoph Hellwig, Tejun Heo, Lukas Bulwahn,
	Daniel Wagner, Tom Zanussi, Daniel Bristot de Oliveira,
	Clark Williams, Julia Cartwright, Marc Zyngier,
	Frederic Weisbecker



On Mon, 15 Jul 2019, Thomas Gleixner wrote:

> 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: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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-preemtible sections. This makes the kernel, except for very

Here is a typo:

s/non-preemtible/non-preemptible/

Nice to see this feature finally getting very close to being merged :)

Lukas

> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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
> 
> 
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
  2019-07-15 19:47   ` Lukas Bulwahn
@ 2019-07-16 18:20   ` Paul E. McKenney
  2019-07-16 20:07   ` Steven Rostedt
                     ` (8 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Paul E. McKenney @ 2019-07-16 18:20 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker

On Mon, Jul 15, 2019 at 05:04:03PM +0200, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>

This would make it easier to get some of the remaining RCU patches
from -rt to mainline, for example, the rcutorture changes proposed
recently.

Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>

> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
> 
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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-preemtible sections. This makes the kernel, except for very
> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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
> 
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
  2019-07-15 19:47   ` Lukas Bulwahn
  2019-07-16 18:20   ` Paul E. McKenney
@ 2019-07-16 20:07   ` Steven Rostedt
  2019-07-16 20:10   ` Clark Williams
                     ` (7 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Steven Rostedt @ 2019-07-16 20:07 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker

On Mon, 15 Jul 2019 17:04:03 +0200
Thomas Gleixner <tglx@linutronix.de> wrote:

> 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: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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

I can't wait to see the CONFIG_ARCH_SUPPORTS_RT added!

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve


> +	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-preemtible sections. This makes the kernel, except for very
> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (2 preceding siblings ...)
  2019-07-16 20:07   ` Steven Rostedt
@ 2019-07-16 20:10   ` Clark Williams
  2019-07-16 20:18     ` Daniel Bristot de Oliveira
  2019-07-16 22:58   ` Ingo Molnar
                     ` (6 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: Clark Williams @ 2019-07-16 20:10 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Paul McKenney, Christoph Hellwig, Tejun Heo, Lukas Bulwahn,
	Daniel Wagner, Tom Zanussi, Daniel Bristot de Oliveira,
	Clark Williams, Julia Cartwright, Marc Zyngier,
	Frederic Weisbecker

On Mon, 15 Jul 2019 17:04:03 +0200
Thomas Gleixner <tglx@linutronix.de> wrote:

> 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: Thomas Gleixner <tglx@linutronix.de>

Excited to see this Thomas. Now I can start planning to build from a single tree
rather than an RT tree off to the side of RHEL :)

Acked-by: Clark Williams <williams@redhat.com>

> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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-preemtible sections. This makes the kernel, except for very
> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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
> 
> 


-- 
The United States Coast Guard
Ruining Natural Selection since 1790

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-16 20:10   ` Clark Williams
@ 2019-07-16 20:18     ` Daniel Bristot de Oliveira
  2019-07-16 20:59       ` Frederic Weisbecker
  0 siblings, 1 reply; 20+ messages in thread
From: Daniel Bristot de Oliveira @ 2019-07-16 20:18 UTC (permalink / raw)
  To: Clark Williams, Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Paul McKenney, Christoph Hellwig, Tejun Heo, Lukas Bulwahn,
	Daniel Wagner, Tom Zanussi, Clark Williams, Julia Cartwright,
	Marc Zyngier, Frederic Weisbecker

On 16/07/2019 22:10, Clark Williams wrote:
> On Mon, 15 Jul 2019 17:04:03 +0200
> Thomas Gleixner <tglx@linutronix.de> wrote:
> 
>> 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: Thomas Gleixner <tglx@linutronix.de>
> Excited to see this Thomas. Now I can start planning to build from a single tree
> rather than an RT tree off to the side of RHEL :)
> 
> Acked-by: Clark Williams <williams@redhat.com>
> 

yeah! We (Red Hat) are committed with maintaining and testing the PREEMPT RT
mainstream in the long term. Including the development of more tests and formal
verification for it!

Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>

Thanks!
-- Daniel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-16 20:18     ` Daniel Bristot de Oliveira
@ 2019-07-16 20:59       ` Frederic Weisbecker
  0 siblings, 0 replies; 20+ messages in thread
From: Frederic Weisbecker @ 2019-07-16 20:59 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira
  Cc: Clark Williams, Thomas Gleixner, Linus Torvalds, LKML,
	Andrew Morton, Greg Kroah-Hartman, Ingo Molnar, Peter Zijlstra,
	Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Clark Williams, Julia Cartwright, Marc Zyngier

On Tue, Jul 16, 2019 at 10:18:00PM +0200, Daniel Bristot de Oliveira wrote:
> On 16/07/2019 22:10, Clark Williams wrote:
> > Excited to see this Thomas. Now I can start planning to build from a single tree
> > rather than an RT tree off to the side of RHEL :)
> > 
> > Acked-by: Clark Williams <williams@redhat.com>
> > 
> 
> yeah! We (Red Hat) are committed with maintaining and testing the PREEMPT RT
> mainstream in the long term. Including the development of more tests and formal
> verification for it!

AND MY AXE!!! (Suse)

Acked-by: Frederic Weisbecker <frederic@kernel.org>

> 
> Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
> 
> Thanks!
> -- Daniel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (3 preceding siblings ...)
  2019-07-16 20:10   ` Clark Williams
@ 2019-07-16 22:58   ` Ingo Molnar
  2019-07-16 23:34   ` Gratian Crisan
                     ` (5 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Ingo Molnar @ 2019-07-16 22:58 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker


* Thomas Gleixner <tglx@linutronix.de> wrote:

> 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: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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

s/etc/etc.

> +	  preemptible priority-inheritance aware variants, enforcing
> +	  interrupt threading and introducing mechanisms to break up long
> +	  non-preemtible sections. This makes the kernel, except for very

s/preemtible/preemptible

> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible and brings most

s/preemtible/preemptible

> +	  execution contexts under scheduler control.
> +
> +	  Select this if you are building a kernel for systems which
> +	  require real-time guarantees.

Nice to see this getting started! :-)

Acked-by: Ingo Molnar <mingo@kernel.org>

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (4 preceding siblings ...)
  2019-07-16 22:58   ` Ingo Molnar
@ 2019-07-16 23:34   ` Gratian Crisan
  2019-07-17  7:38   ` Peter Zijlstra
                     ` (4 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Gratian Crisan @ 2019-07-16 23:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: Linus Torvalds, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker


Thomas Gleixner writes:

> 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: Thomas Gleixner <tglx@linutronix.de>

+1 from National Instruments. We have a vested interest in preempt_rt
and we're committed in helping support, maintain, and test it. Glad to
see this happening.

Acked-by: Gratian Crisan <gratian.crisan@ni.com>

Thanks,
    Gratian

> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
>
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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-preemtible sections. This makes the kernel, except for very
> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (5 preceding siblings ...)
  2019-07-16 23:34   ` Gratian Crisan
@ 2019-07-17  7:38   ` Peter Zijlstra
  2019-07-17  7:57   ` Marc Zyngier
                     ` (3 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Peter Zijlstra @ 2019-07-17  7:38 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker

On Mon, Jul 15, 2019 at 05:04:03PM +0200, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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-preemtible sections. This makes the kernel, except for very
> +	  low level and critical code pathes (entry code, scheduler, low
> +	  level interrupt handling) fully preemtible 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
> 
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (6 preceding siblings ...)
  2019-07-17  7:38   ` Peter Zijlstra
@ 2019-07-17  7:57   ` Marc Zyngier
  2019-07-17  8:45   ` Daniel Wagner
                     ` (2 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Marc Zyngier @ 2019-07-17  7:57 UTC (permalink / raw)
  To: Thomas Gleixner, Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Frederic Weisbecker

On 15/07/2019 16:04, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Marc Zyngier <marc.zyngier@arm.com>

	M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (7 preceding siblings ...)
  2019-07-17  7:57   ` Marc Zyngier
@ 2019-07-17  8:45   ` Daniel Wagner
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
  2019-07-17 23:05   ` [patch 1/1] " Luis Claudio R. Goncalves
  10 siblings, 0 replies; 20+ messages in thread
From: Daniel Wagner @ 2019-07-17  8:45 UTC (permalink / raw)
  To: Thomas Gleixner, Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Tom Zanussi,
	Daniel Bristot de Oliveira, Clark Williams, Julia Cartwright,
	Marc Zyngier, Frederic Weisbecker

Hi,

On 7/15/19 5:04 PM, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>

As one of the stable-rt maintainers I love to see this move forward!

Acked-by: Daniel Wagner <wagi@monom.org>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [patch V2 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (8 preceding siblings ...)
  2019-07-17  8:45   ` Daniel Wagner
@ 2019-07-17 20:01   ` Thomas Gleixner
  2019-07-18 14:19     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
                       ` (4 more replies)
  2019-07-17 23:05   ` [patch 1/1] " Luis Claudio R. Goncalves
  10 siblings, 5 replies; 20+ messages in thread
From: Thomas Gleixner @ 2019-07-17 20:01 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker,
	Gratian Crisan

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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Clark Williams <williams@redhat.com>
Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Daniel Wagner <wagi@monom.org>
---
V2: Fix typos in help text, collect acks
---
 arch/Kconfig           |    3 +++
 kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -809,6 +809,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
 
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
                     ` (9 preceding siblings ...)
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
@ 2019-07-17 23:05   ` Luis Claudio R. Goncalves
  10 siblings, 0 replies; 20+ messages in thread
From: Luis Claudio R. Goncalves @ 2019-07-17 23:05 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Paul McKenney, Christoph Hellwig, Tejun Heo, Lukas Bulwahn,
	Daniel Wagner, Tom Zanussi, Daniel Bristot de Oliveira,
	Clark Williams, Julia Cartwright, Marc Zyngier,
	Frederic Weisbecker

On Mon, Jul 15, 2019 at 05:04:03PM +0200, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>
> ---

Glad to see this important step being taken!

Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [tip:sched/urgent] sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
@ 2019-07-18 14:19     ` tip-bot for Thomas Gleixner
  2019-07-18 14:50     ` [patch V2 1/1] " Julia Cartwright
                       ` (3 subsequent siblings)
  4 siblings, 0 replies; 20+ messages in thread
From: tip-bot for Thomas Gleixner @ 2019-07-18 14:19 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: paulmck, williams, frederic, peterz, mingo, rostedt, hpa,
	lukas.bulwahn, julia, linux-kernel, efault, marc.zyngier,
	bristot, torvalds, tom.zanussi, gregkh, hch, bigeasy, lgoncalv,
	clark.williams, tj, gratian.crisan, wagi, paulmck, akpm, tglx

Commit-ID:  2c2ffb925b368a1f00d4ddcc837f830394861d6c
Gitweb:     https://git.kernel.org/tip/2c2ffb925b368a1f00d4ddcc837f830394861d6c
Author:     Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Wed, 17 Jul 2019 22:01:49 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 18 Jul 2019 14:53:32 +0200

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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Clark Williams <williams@redhat.com>
Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Daniel Wagner <wagi@monom.org>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Cc: Andrew Morton <akpm@linuxfoundation.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Clark Williams <clark.williams@gmail.com>
Cc: Gratian Crisan <gratian.crisan@ni.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Julia Cartwright <julia@ni.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sebastian Siewior <bigeasy@linutronix.de>
Cc: Tejun Heo <tj@kernel.org>
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1907172200190.1778@nanos.tec.linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/Kconfig           |  3 +++
 kernel/Kconfig.preempt | 25 +++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index c47b328eada0..ada51f36bd5d 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -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
 
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index dc0b682ec2d9..fc020c09b7e8 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch V2 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
  2019-07-18 14:19     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
@ 2019-07-18 14:50     ` Julia Cartwright
  2019-07-18 17:52     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
                       ` (2 subsequent siblings)
  4 siblings, 0 replies; 20+ messages in thread
From: Julia Cartwright @ 2019-07-18 14:50 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, LKML, Andrew Morton, Greg Kroah-Hartman,
	Ingo Molnar, Peter Zijlstra, Steven Rostedt, Sebastian Siewior,
	Paul McKenney, Christoph Hellwig, Tejun Heo, Lukas Bulwahn,
	Daniel Wagner, Tom Zanussi, Daniel Bristot de Oliveira,
	Clark Williams, Marc Zyngier, Frederic Weisbecker,
	Gratian Crisan

On Wed, Jul 17, 2019 at 10:01:49PM +0200, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>
> Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> Acked-by: Clark Williams <williams@redhat.com>
> Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
> Acked-by: Frederic Weisbecker <frederic@kernel.org>
> Acked-by: Ingo Molnar <mingo@kernel.org>
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
> Acked-by: Daniel Wagner <wagi@monom.org>
> ---

I'm excited to see where this goes.

Acked-by: Julia Cartwright <julia@ni.com>

  Julia

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [tip:sched/urgent] sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
  2019-07-18 14:19     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
  2019-07-18 14:50     ` [patch V2 1/1] " Julia Cartwright
@ 2019-07-18 17:52     ` tip-bot for Thomas Gleixner
  2019-07-18 19:23     ` [patch V2 1/1] " Tom Zanussi
  2019-07-18 21:16     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
  4 siblings, 0 replies; 20+ messages in thread
From: tip-bot for Thomas Gleixner @ 2019-07-18 17:52 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: hpa, gregkh, tom.zanussi, lukas.bulwahn, tglx, marc.zyngier,
	rostedt, akpm, frederic, efault, paulmck, lgoncalv, linux-kernel,
	bigeasy, mingo, bristot, julia, gratian.crisan, torvalds,
	clark.williams, wagi, williams, tj, paulmck, hch, peterz

Commit-ID:  a003296b7a97dedccb0c35c4c1e44e088050b8c4
Gitweb:     https://git.kernel.org/tip/a003296b7a97dedccb0c35c4c1e44e088050b8c4
Author:     Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Wed, 17 Jul 2019 22:01:49 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 18 Jul 2019 19:47:11 +0200

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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Clark Williams <williams@redhat.com>
Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Daniel Wagner <wagi@monom.org>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Acked-by: Julia Cartwright <julia@ni.com>
Cc: Andrew Morton <akpm@linuxfoundation.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Clark Williams <clark.williams@gmail.com>
Cc: Gratian Crisan <gratian.crisan@ni.com>
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: Paul McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sebastian Siewior <bigeasy@linutronix.de>
Cc: Tejun Heo <tj@kernel.org>
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1907172200190.1778@nanos.tec.linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/Kconfig           |  3 +++
 kernel/Kconfig.preempt | 25 +++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index c47b328eada0..ada51f36bd5d 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -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
 
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index dc0b682ec2d9..fc020c09b7e8 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [patch V2 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
                       ` (2 preceding siblings ...)
  2019-07-18 17:52     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
@ 2019-07-18 19:23     ` Tom Zanussi
  2019-07-18 21:16     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
  4 siblings, 0 replies; 20+ messages in thread
From: Tom Zanussi @ 2019-07-18 19:23 UTC (permalink / raw)
  To: Thomas Gleixner, Linus Torvalds
  Cc: LKML, Andrew Morton, Greg Kroah-Hartman, Ingo Molnar,
	Peter Zijlstra, Steven Rostedt, Sebastian Siewior, Paul McKenney,
	Christoph Hellwig, Tejun Heo, Lukas Bulwahn, Daniel Wagner,
	Tom Zanussi, Daniel Bristot de Oliveira, Clark Williams,
	Julia Cartwright, Marc Zyngier, Frederic Weisbecker,
	Gratian Crisan

Hi,

On Wed, 2019-07-17 at 22:01 +0200, Thomas Gleixner wrote:
> 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: Thomas Gleixner <tglx@linutronix.de>
> Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> Acked-by: Clark Williams <williams@redhat.com>
> Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
> Acked-by: Frederic Weisbecker <frederic@kernel.org>
> Acked-by: Ingo Molnar <mingo@kernel.org>
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
> Acked-by: Daniel Wagner <wagi@monom.org>
> ---

As one of the stable-rt maintainers, I'd obviously be very happy to see
this finally go in.  :-)

And will be happy to do what I can to help with the remaining 311...

Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>


> V2: Fix typos in help text, collect acks
> ---
>  arch/Kconfig           |    3 +++
>  kernel/Kconfig.preempt |   25 +++++++++++++++++++++++--
>  2 files changed, 26 insertions(+), 2 deletions(-)
> 
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -809,6 +809,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
>  
> --- a/kernel/Kconfig.preempt
> +++ b/kernel/Kconfig.preempt
> @@ -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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [tip:sched/urgent] sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT
  2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
                       ` (3 preceding siblings ...)
  2019-07-18 19:23     ` [patch V2 1/1] " Tom Zanussi
@ 2019-07-18 21:16     ` tip-bot for Thomas Gleixner
  4 siblings, 0 replies; 20+ messages in thread
From: tip-bot for Thomas Gleixner @ 2019-07-18 21:16 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: julia, tglx, peterz, paulmck, frederic, linux-kernel, tj,
	lgoncalv, lukas.bulwahn, bigeasy, rostedt, mingo, bristot,
	tom.zanussi, marc.zyngier, efault, gratian.crisan, williams, hch,
	wagi, gregkh, hpa, akpm, torvalds

Commit-ID:  a50a3f4b6a313dc76912bd4ad3b8b4f4b479c801
Gitweb:     https://git.kernel.org/tip/a50a3f4b6a313dc76912bd4ad3b8b4f4b479c801
Author:     Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Wed, 17 Jul 2019 22:01:49 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 18 Jul 2019 23:10:57 +0200

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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Clark Williams <williams@redhat.com>
Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Daniel Wagner <wagi@monom.org>
Acked-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
Acked-by: Julia Cartwright <julia@ni.com>
Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Acked-by: Gratian Crisan <gratian.crisan@ni.com>
Acked-by: Sebastian 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: Ingo Molnar <mingo@kernel.org>
---
 arch/Kconfig           |  3 +++
 kernel/Kconfig.preempt | 25 +++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index c47b328eada0..ada51f36bd5d 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -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
 
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index dc0b682ec2d9..fc020c09b7e8 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-07-18 21:17 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-15 15:04 [patch 0/1] Kconfig: Introduce CONFIG_PREEMPT_RT Thomas Gleixner
2019-07-15 15:04 ` [patch 1/1] " Thomas Gleixner
2019-07-15 19:47   ` Lukas Bulwahn
2019-07-16 18:20   ` Paul E. McKenney
2019-07-16 20:07   ` Steven Rostedt
2019-07-16 20:10   ` Clark Williams
2019-07-16 20:18     ` Daniel Bristot de Oliveira
2019-07-16 20:59       ` Frederic Weisbecker
2019-07-16 22:58   ` Ingo Molnar
2019-07-16 23:34   ` Gratian Crisan
2019-07-17  7:38   ` Peter Zijlstra
2019-07-17  7:57   ` Marc Zyngier
2019-07-17  8:45   ` Daniel Wagner
2019-07-17 20:01   ` [patch V2 " Thomas Gleixner
2019-07-18 14:19     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
2019-07-18 14:50     ` [patch V2 1/1] " Julia Cartwright
2019-07-18 17:52     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
2019-07-18 19:23     ` [patch V2 1/1] " Tom Zanussi
2019-07-18 21:16     ` [tip:sched/urgent] sched/rt, " tip-bot for Thomas Gleixner
2019-07-17 23:05   ` [patch 1/1] " Luis Claudio R. Goncalves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).