| .. | .. | 
|---|
| 1 |  | -config PREEMPT  | 
|---|
| 2 |  | -	bool  | 
|---|
| 3 |  | -	select PREEMPT_COUNT  | 
|---|
| 4 |  | -  | 
|---|
| 5 |  | -config PREEMPT_RT_BASE  | 
|---|
| 6 |  | -	bool  | 
|---|
| 7 |  | -	select PREEMPT  | 
|---|
| 8 |  | -  | 
|---|
| 9 |  | -config PREEMPT_RT  | 
|---|
| 10 |  | -       bool  | 
|---|
| 11 |  | -  | 
|---|
| 12 |  | -config HAVE_PREEMPT_LAZY  | 
|---|
| 13 |  | -	bool  | 
|---|
| 14 |  | -  | 
|---|
| 15 |  | -config PREEMPT_LAZY  | 
|---|
| 16 |  | -	def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL  | 
|---|
 | 1 | +# SPDX-License-Identifier: GPL-2.0-only  | 
|---|
| 17 | 2 |   | 
|---|
| 18 | 3 |  choice | 
|---|
| 19 | 4 |  	prompt "Preemption Model" | 
|---|
| .. | .. | 
|---|
| 50 | 35 |   | 
|---|
| 51 | 36 |  	  Select this if you are building a kernel for a desktop system. | 
|---|
| 52 | 37 |   | 
|---|
| 53 |  | -config PREEMPT__LL  | 
|---|
 | 38 | +config PREEMPT  | 
|---|
| 54 | 39 |  	bool "Preemptible Kernel (Low-Latency Desktop)" | 
|---|
| 55 | 40 |  	depends on !ARCH_NO_PREEMPT | 
|---|
| 56 |  | -	select PREEMPT  | 
|---|
 | 41 | +	select PREEMPTION  | 
|---|
| 57 | 42 |  	select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK | 
|---|
| 58 | 43 |  	help | 
|---|
| 59 | 44 |  	  This option reduces the latency of the kernel by making | 
|---|
| .. | .. | 
|---|
| 70 | 55 |  	  embedded system with latency requirements in the milliseconds | 
|---|
| 71 | 56 |  	  range. | 
|---|
| 72 | 57 |   | 
|---|
| 73 |  | -config PREEMPT_RTB  | 
|---|
| 74 |  | -	bool "Preemptible Kernel (Basic RT)"  | 
|---|
| 75 |  | -	select PREEMPT_RT_BASE  | 
|---|
 | 58 | +config PREEMPT_RT  | 
|---|
 | 59 | +	bool "Fully Preemptible Kernel (Real-Time)"  | 
|---|
 | 60 | +	depends on EXPERT && ARCH_SUPPORTS_RT  | 
|---|
 | 61 | +	select PREEMPTION  | 
|---|
| 76 | 62 |  	help | 
|---|
| 77 |  | -	  This option is basically the same as (Low-Latency Desktop) but  | 
|---|
| 78 |  | -	  enables changes which are preliminary for the full preemptible  | 
|---|
| 79 |  | -	  RT kernel.  | 
|---|
 | 63 | +	  This option turns the kernel into a real-time kernel by replacing  | 
|---|
 | 64 | +	  various locking primitives (spinlocks, rwlocks, etc.) with  | 
|---|
 | 65 | +	  preemptible priority-inheritance aware variants, enforcing  | 
|---|
 | 66 | +	  interrupt threading and introducing mechanisms to break up long  | 
|---|
 | 67 | +	  non-preemptible sections. This makes the kernel, except for very  | 
|---|
 | 68 | +	  low level and critical code paths (entry code, scheduler, low  | 
|---|
 | 69 | +	  level interrupt handling) fully preemptible and brings most  | 
|---|
 | 70 | +	  execution contexts under scheduler control.  | 
|---|
| 80 | 71 |   | 
|---|
| 81 |  | -config PREEMPT_RT_FULL  | 
|---|
| 82 |  | -	bool "Fully Preemptible Kernel (RT)"  | 
|---|
| 83 |  | -	depends on IRQ_FORCED_THREADING  | 
|---|
| 84 |  | -	select PREEMPT_RT_BASE  | 
|---|
| 85 |  | -	select PREEMPT_RCU  | 
|---|
| 86 |  | -	select PREEMPT_RT  | 
|---|
| 87 |  | -	help  | 
|---|
| 88 |  | -	  All and everything  | 
|---|
 | 72 | +	  Select this if you are building a kernel for systems which  | 
|---|
 | 73 | +	  require real-time guarantees.  | 
|---|
| 89 | 74 |   | 
|---|
| 90 | 75 |  endchoice | 
|---|
| 91 | 76 |   | 
|---|
| 92 | 77 |  config PREEMPT_COUNT | 
|---|
| 93 | 78 |         bool | 
|---|
 | 79 | +  | 
|---|
 | 80 | +config PREEMPTION  | 
|---|
 | 81 | +       bool  | 
|---|
 | 82 | +       select PREEMPT_COUNT  | 
|---|