1 # SPDX-License-Identifier: GPL-2.0-only 2 3 config PREEMPT_NONE_BUILD 4 bool 5 6 config PREEMPT_VOLUNTARY_BUILD 7 bool 8 9 config PREEMPT_BUILD 10 bool 11 select PREEMPTION 12 select UNINLINE_SPIN_UNLOCK if !ARCH_I 13 14 choice 15 prompt "Preemption Model" 16 default PREEMPT_NONE 17 18 config PREEMPT_NONE 19 bool "No Forced Preemption (Server)" 20 select PREEMPT_NONE_BUILD if !PREEMPT_ 21 help 22 This is the traditional Linux preemp 23 throughput. It will still provide go 24 time, but there are no guarantees an 25 are possible. 26 27 Select this option if you are buildi 28 scientific/computation system, or if 29 raw processing power of the kernel, 30 latencies. 31 32 config PREEMPT_VOLUNTARY 33 bool "Voluntary Kernel Preemption (Des 34 depends on !ARCH_NO_PREEMPT 35 select PREEMPT_VOLUNTARY_BUILD if !PRE 36 help 37 This option reduces the latency of t 38 "explicit preemption points" to the 39 preemption points have been selected 40 latency of rescheduling, providing f 41 at the cost of slightly lower throug 42 43 This allows reaction to interactive 44 low priority process to voluntarily 45 is in kernel mode executing a system 46 applications to run more 'smoothly' 47 under load. 48 49 Select this if you are building a ke 50 51 config PREEMPT 52 bool "Preemptible Kernel (Low-Latency 53 depends on !ARCH_NO_PREEMPT 54 select PREEMPT_BUILD 55 help 56 This option reduces the latency of t 57 all kernel code (that is not executi 58 preemptible. This allows reaction t 59 permitting a low priority process to 60 even if it is in kernel mode executi 61 otherwise not be about to reach a na 62 This allows applications to run more 63 system is under load, at the cost of 64 and a slight runtime overhead to ker 65 66 Select this if you are building a ke 67 embedded system with latency require 68 range. 69 70 config PREEMPT_RT 71 bool "Fully Preemptible Kernel (Real-T 72 depends on EXPERT && ARCH_SUPPORTS_RT 73 select PREEMPTION 74 help 75 This option turns the kernel into a 76 various locking primitives (spinlock 77 preemptible priority-inheritance awa 78 interrupt threading and introducing 79 non-preemptible sections. This makes 80 low level and critical code paths (e 81 level interrupt handling) fully pree 82 execution contexts under scheduler c 83 84 Select this if you are building a ke 85 require real-time guarantees. 86 87 endchoice 88 89 config PREEMPT_COUNT 90 bool 91 92 config PREEMPTION 93 bool 94 select PREEMPT_COUNT 95 96 config PREEMPT_DYNAMIC 97 bool "Preemption behaviour defined on 98 depends on HAVE_PREEMPT_DYNAMIC && !PR 99 select JUMP_LABEL if HAVE_PREEMPT_DYNA 100 select PREEMPT_BUILD 101 default y if HAVE_PREEMPT_DYNAMIC_CALL 102 help 103 This option allows to define the pre 104 command line parameter and thus over 105 model defined during compile time. 106 107 The feature is primarily interesting 108 provide a pre-built kernel binary to 109 flavors they offer while still offer 110 111 The runtime overhead is negligible w 112 but if runtime patching is not avail 113 then the potential overhead should b 114 115 Interesting if you want the same pre 116 both Server and Desktop workloads. 117 118 config SCHED_CORE 119 bool "Core Scheduling for SMT" 120 depends on SCHED_SMT 121 help 122 This option permits Core Scheduling, 123 selection across SMT siblings. When 124 prctl(PR_SCHED_CORE) -- task selecti 125 will execute a task from the same 'c 126 matching task is found. 127 128 Use of this feature includes: 129 - mitigation of some (not all) SMT 130 - limiting SMT interference to impr 131 132 SCHED_CORE is default disabled. When 133 which is the likely usage by Linux d 134 be no measurable impact on performan 135 136 config SCHED_CLASS_EXT 137 bool "Extensible Scheduling Class" 138 depends on BPF_SYSCALL && BPF_JIT && D 139 select STACKTRACE if STACKTRACE_SUPPOR 140 help 141 This option enables a new scheduler 142 allows scheduling policies to be imp 143 achieve the following: 144 145 - Ease of experimentation and explor 146 iteration of new scheduling polici 147 - Customization: Building applicatio 148 implement policies that are not ap 149 schedulers. 150 - Rapid scheduler deployments: Non-d 151 scheduling policies in production 152 153 sched_ext leverages BPF struct_ops f 154 which exports function callbacks and 155 wish to implement scheduling policie 156 exported by sched_ext is struct sche 157 similar to struct sched_class. 158 159 For more information: 160 Documentation/scheduler/sched-ext. 161 https://github.com/sched-ext/scx
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.