1cc19ca86SIngo Molnar 2*f8cbd99bSIngo Molnarchoice 3*f8cbd99bSIngo Molnar prompt "Preemption Model" 4*f8cbd99bSIngo Molnar default PREEMPT_NONE 5*f8cbd99bSIngo Molnar 6*f8cbd99bSIngo Molnarconfig PREEMPT_NONE 7*f8cbd99bSIngo Molnar bool "No Forced Preemption (Server)" 8cc19ca86SIngo Molnar help 9*f8cbd99bSIngo Molnar This is the traditional Linux preemption model, geared towards 10*f8cbd99bSIngo Molnar throughput. It will still provide good latencies most of the 11*f8cbd99bSIngo Molnar time, but there are no guarantees and occasional longer delays 12*f8cbd99bSIngo Molnar are possible. 13*f8cbd99bSIngo Molnar 14*f8cbd99bSIngo Molnar Select this option if you are building a kernel for a server or 15*f8cbd99bSIngo Molnar scientific/computation system, or if you want to maximize the 16*f8cbd99bSIngo Molnar raw processing power of the kernel, irrespective of scheduling 17*f8cbd99bSIngo Molnar latencies. 18*f8cbd99bSIngo Molnar 19*f8cbd99bSIngo Molnarconfig PREEMPT_VOLUNTARY 20*f8cbd99bSIngo Molnar bool "Voluntary Kernel Preemption (Desktop)" 21*f8cbd99bSIngo Molnar help 22*f8cbd99bSIngo Molnar This option reduces the latency of the kernel by adding more 23*f8cbd99bSIngo Molnar "explicit preemption points" to the kernel code. These new 24*f8cbd99bSIngo Molnar preemption points have been selected to reduce the maximum 25*f8cbd99bSIngo Molnar latency of rescheduling, providing faster application reactions, 26*f8cbd99bSIngo Molnar at the cost of slighly lower throughput. 27*f8cbd99bSIngo Molnar 28*f8cbd99bSIngo Molnar This allows reaction to interactive events by allowing a 29*f8cbd99bSIngo Molnar low priority process to voluntarily preempt itself even if it 30*f8cbd99bSIngo Molnar is in kernel mode executing a system call. This allows 31*f8cbd99bSIngo Molnar applications to run more 'smoothly' even when the system is 32cc19ca86SIngo Molnar under load. 33cc19ca86SIngo Molnar 34*f8cbd99bSIngo Molnar Select this if you are building a kernel for a desktop system. 35*f8cbd99bSIngo Molnar 36*f8cbd99bSIngo Molnarconfig PREEMPT 37*f8cbd99bSIngo Molnar bool "Preemptible Kernel (Low-Latency Desktop)" 38*f8cbd99bSIngo Molnar help 39*f8cbd99bSIngo Molnar This option reduces the latency of the kernel by making 40*f8cbd99bSIngo Molnar all kernel code (that is not executing in a critical section) 41*f8cbd99bSIngo Molnar preemptible. This allows reaction to interactive events by 42*f8cbd99bSIngo Molnar permitting a low priority process to be preempted involuntarily 43*f8cbd99bSIngo Molnar even if it is in kernel mode executing a system call and would 44*f8cbd99bSIngo Molnar otherwise not be about to reach a natural preemption point. 45*f8cbd99bSIngo Molnar This allows applications to run more 'smoothly' even when the 46*f8cbd99bSIngo Molnar system is under load, at the cost of slighly lower throughput 47*f8cbd99bSIngo Molnar and a slight runtime overhead to kernel code. 48*f8cbd99bSIngo Molnar 49*f8cbd99bSIngo Molnar Select this if you are building a kernel for a desktop or 50*f8cbd99bSIngo Molnar embedded system with latency requirements in the milliseconds 51*f8cbd99bSIngo Molnar range. 52*f8cbd99bSIngo Molnar 53*f8cbd99bSIngo Molnarendchoice 54cc19ca86SIngo Molnar 55cc19ca86SIngo Molnarconfig PREEMPT_BKL 56cc19ca86SIngo Molnar bool "Preempt The Big Kernel Lock" 57f704f56aSIngo Molnar depends on SMP || PREEMPT 58cc19ca86SIngo Molnar default y 59cc19ca86SIngo Molnar help 60cc19ca86SIngo Molnar This option reduces the latency of the kernel by making the 61cc19ca86SIngo Molnar big kernel lock preemptible. 62cc19ca86SIngo Molnar 63cc19ca86SIngo Molnar Say Y here if you are building a kernel for a desktop system. 64cc19ca86SIngo Molnar Say N if you are unsure. 65cc19ca86SIngo Molnar 66