* Thomas Gleixner <t...@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 <t...@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 <mi...@kernel.org>

Thanks,

        Ingo

Reply via email to