forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/kernel/Kconfig.preempt
....@@ -1,19 +1,10 @@
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
1
+# SPDX-License-Identifier: GPL-2.0-only
112
123 config HAVE_PREEMPT_LAZY
134 bool
145
156 config PREEMPT_LAZY
16
- def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL
7
+ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT
178
189 choice
1910 prompt "Preemption Model"
....@@ -50,10 +41,10 @@
5041
5142 Select this if you are building a kernel for a desktop system.
5243
53
-config PREEMPT__LL
44
+config PREEMPT
5445 bool "Preemptible Kernel (Low-Latency Desktop)"
5546 depends on !ARCH_NO_PREEMPT
56
- select PREEMPT
47
+ select PREEMPTION
5748 select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
5849 help
5950 This option reduces the latency of the kernel by making
....@@ -70,24 +61,29 @@
7061 embedded system with latency requirements in the milliseconds
7162 range.
7263
73
-config PREEMPT_RTB
74
- bool "Preemptible Kernel (Basic RT)"
75
- select PREEMPT_RT_BASE
64
+config PREEMPT_RT
65
+ bool "Fully Preemptible Kernel (Real-Time)"
66
+ depends on EXPERT && ARCH_SUPPORTS_RT
67
+ select PREEMPTION
68
+ select RT_MUTEXES
7669 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.
70
+ This option turns the kernel into a real-time kernel by replacing
71
+ various locking primitives (spinlocks, rwlocks, etc.) with
72
+ preemptible priority-inheritance aware variants, enforcing
73
+ interrupt threading and introducing mechanisms to break up long
74
+ non-preemptible sections. This makes the kernel, except for very
75
+ low level and critical code paths (entry code, scheduler, low
76
+ level interrupt handling) fully preemptible and brings most
77
+ execution contexts under scheduler control.
8078
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
79
+ Select this if you are building a kernel for systems which
80
+ require real-time guarantees.
8981
9082 endchoice
9183
9284 config PREEMPT_COUNT
9385 bool
86
+
87
+config PREEMPTION
88
+ bool
89
+ select PREEMPT_COUNT