| 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, | 
| David Sterba | 3dde6ad | 2007-05-09 07:12:20 +0200 | [diff] [blame] | 26 | 	  at the cost of slightly lower throughput. | 
| Ingo Molnar | f8cbd99 | 2005-06-25 14:57:39 -0700 | [diff] [blame] | 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 | 
| David Sterba | 3dde6ad | 2007-05-09 07:12:20 +0200 | [diff] [blame] | 46 | 	  system is under load, at the cost of slightly lower throughput | 
| Ingo Molnar | f8cbd99 | 2005-06-25 14:57:39 -0700 | [diff] [blame] | 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 |  | 
| Paul E. McKenney | 21bbb39 | 2008-03-10 11:43:57 -0700 | [diff] [blame] | 55 | config PREEMPT_RCU | 
 | 56 | 	bool "Preemptible RCU" | 
 | 57 | 	depends on PREEMPT | 
 | 58 | 	default n | 
 | 59 | 	help | 
 | 60 | 	  This option reduces the latency of the kernel by making certain | 
 | 61 | 	  RCU sections preemptible. Normally RCU code is non-preemptible, if | 
 | 62 | 	  this option is selected then read-only RCU sections become | 
 | 63 | 	  preemptible. This helps latency, but may expose bugs due to | 
 | 64 | 	  now-naive assumptions about each RCU read-side critical section | 
 | 65 | 	  remaining on a given CPU through its execution. | 
 | 66 |  | 
 | 67 | 	  Say N if you are unsure. | 
 | 68 |  | 
| Paul E. McKenney | e260be6 | 2008-01-25 21:08:24 +0100 | [diff] [blame] | 69 | config RCU_TRACE | 
 | 70 | 	bool "Enable tracing for RCU - currently stats in debugfs" | 
| Paul E. McKenney | 21bbb39 | 2008-03-10 11:43:57 -0700 | [diff] [blame] | 71 | 	depends on PREEMPT_RCU | 
| Paul E. McKenney | e260be6 | 2008-01-25 21:08:24 +0100 | [diff] [blame] | 72 | 	select DEBUG_FS | 
 | 73 | 	default y | 
 | 74 | 	help | 
 | 75 | 	  This option provides tracing in RCU which presents stats | 
 | 76 | 	  in debugfs for debugging RCU implementation. | 
 | 77 |  | 
 | 78 | 	  Say Y here if you want to enable RCU tracing | 
 | 79 | 	  Say N if you are unsure. |