Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 > --- Glad to see this important step being taken! Acked-by: Luis Claudio R. Goncalves
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 As one of the stable-rt maintainers I love to see this move forward! Acked-by: Daniel Wagner
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 Acked-by: Marc Zyngier M. -- Jazz is not dead. It just smells funny...
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 Acked-by: Peter Zijlstra (Intel) > --- > 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 > >
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 +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 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
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
* 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 > --- > 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 Thanks, Ingo
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 > > > > 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 > > Acked-by: Daniel Bristot de Oliveira > > Thanks! > -- Daniel
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
On 16/07/2019 22:10, Clark Williams wrote: > On Mon, 15 Jul 2019 17:04:03 +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 > 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 > 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 Thanks! -- Daniel
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
On Mon, 15 Jul 2019 17:04:03 +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 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 > --- > 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
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
On Mon, 15 Jul 2019 17:04:03 +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 > --- > 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) -- 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 >
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 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 > --- > 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 > >
Re: [patch 1/1] Kconfig: Introduce CONFIG_PREEMPT_RT
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 > --- > 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 > > >