.. | .. |
---|
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 |
---|