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