hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/kernel/Kconfig.preempt
....@@ -1,19 +1,4 @@
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
172
183 choice
194 prompt "Preemption Model"
....@@ -50,10 +35,10 @@
5035
5136 Select this if you are building a kernel for a desktop system.
5237
53
-config PREEMPT__LL
38
+config PREEMPT
5439 bool "Preemptible Kernel (Low-Latency Desktop)"
5540 depends on !ARCH_NO_PREEMPT
56
- select PREEMPT
41
+ select PREEMPTION
5742 select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
5843 help
5944 This option reduces the latency of the kernel by making
....@@ -70,24 +55,28 @@
7055 embedded system with latency requirements in the milliseconds
7156 range.
7257
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
7662 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.
8071
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.
8974
9075 endchoice
9176
9277 config PREEMPT_COUNT
9378 bool
79
+
80
+config PREEMPTION
81
+ bool
82
+ select PREEMPT_COUNT