~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/kernel/rcu/Kconfig

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /kernel/rcu/Kconfig (Version linux-6.12-rc7) and /kernel/rcu/Kconfig (Version linux-2.6.0)


  1 # SPDX-License-Identifier: GPL-2.0-only           
  2 #                                                 
  3 # RCU-related configuration options               
  4 #                                                 
  5                                                   
  6 menu "RCU Subsystem"                              
  7                                                   
  8 config TREE_RCU                                   
  9         bool                                      
 10         default y if SMP                          
 11         # Dynticks-idle tracking                  
 12         select CONTEXT_TRACKING_IDLE              
 13         help                                      
 14           This option selects the RCU implemen    
 15           designed for very large SMP system w    
 16           thousands of CPUs.  It also scales d    
 17           smaller systems.                        
 18                                                   
 19 config PREEMPT_RCU                                
 20         bool                                      
 21         default y if PREEMPTION                   
 22         select TREE_RCU                           
 23         help                                      
 24           This option selects the RCU implemen    
 25           designed for very large SMP systems     
 26           thousands of CPUs, but for which rea    
 27           is also required.  It also scales do    
 28           smaller systems.                        
 29                                                   
 30           Select this option if you are unsure    
 31                                                   
 32 config TINY_RCU                                   
 33         bool                                      
 34         default y if !PREEMPT_RCU && !SMP         
 35         help                                      
 36           This option selects the RCU implemen    
 37           designed for UP systems from which r    
 38           is not required.  This option greatl    
 39           memory footprint of RCU.                
 40                                                   
 41 config RCU_EXPERT                                 
 42         bool "Make expert-level adjustments to    
 43         default n                                 
 44         help                                      
 45           This option needs to be enabled if y    
 46           expert-level adjustments to RCU conf    
 47           no such adjustments can be made, whi    
 48           side-effect of preventing "make oldc    
 49           sorts of detailed questions about ho    
 50           obscure RCU options to be set up.       
 51                                                   
 52           Say Y if you need to make expert-lev    
 53                                                   
 54           Say N if you are unsure.                
 55                                                   
 56 config TINY_SRCU                                  
 57         bool                                      
 58         default y if TINY_RCU                     
 59         help                                      
 60           This option selects the single-CPU n    
 61                                                   
 62 config TREE_SRCU                                  
 63         bool                                      
 64         default y if !TINY_RCU                    
 65         help                                      
 66           This option selects the full-fledged    
 67                                                   
 68 config NEED_SRCU_NMI_SAFE                         
 69         def_bool HAVE_NMI && !ARCH_HAS_NMI_SAF    
 70                                                   
 71 config TASKS_RCU_GENERIC                          
 72         def_bool TASKS_RCU || TASKS_RUDE_RCU |    
 73         help                                      
 74           This option enables generic infrastr    
 75           task-based RCU implementations.  Not    
 76                                                   
 77 config FORCE_TASKS_RCU                            
 78         bool "Force selection of TASKS_RCU"       
 79         depends on RCU_EXPERT                     
 80         select TASKS_RCU                          
 81         default n                                 
 82         help                                      
 83           This option force-enables a task-bas    
 84           that uses only voluntary context swi    
 85           idle, and user-mode execution as qui    
 86           manual selection in most cases.         
 87                                                   
 88 config NEED_TASKS_RCU                             
 89         bool                                      
 90         default n                                 
 91                                                   
 92 config TASKS_RCU                                  
 93         bool                                      
 94         default NEED_TASKS_RCU && (PREEMPTION     
 95         select IRQ_WORK                           
 96                                                   
 97 config FORCE_TASKS_RUDE_RCU                       
 98         bool "Force selection of Tasks Rude RC    
 99         depends on RCU_EXPERT                     
100         select TASKS_RUDE_RCU                     
101         default n                                 
102         help                                      
103           This option force-enables a task-bas    
104           that uses only context switch (inclu    
105           user-mode execution as quiescent sta    
106           context switches on all online CPUs,    
107           so use with caution.  Not for manual    
108                                                   
109 config TASKS_RUDE_RCU                             
110         bool                                      
111         default n                                 
112         select IRQ_WORK                           
113                                                   
114 config FORCE_TASKS_TRACE_RCU                      
115         bool "Force selection of Tasks Trace R    
116         depends on RCU_EXPERT                     
117         select TASKS_TRACE_RCU                    
118         default n                                 
119         help                                      
120           This option enables a task-based RCU    
121           explicit rcu_read_lock_trace() read-    
122           these readers to appear in the idle     
123           CPU hotplug code paths.  It can forc    
124           including idle ones, so use with cau    
125           selection in most cases.                
126                                                   
127 config TASKS_TRACE_RCU                            
128         bool                                      
129         default n                                 
130         select IRQ_WORK                           
131                                                   
132 config RCU_STALL_COMMON                           
133         def_bool TREE_RCU                         
134         help                                      
135           This option enables RCU CPU stall co    
136           the TINY and TREE variants of RCU.      
137           the tiny variants to disable RCU CPU    
138           making these warnings mandatory for     
139                                                   
140 config RCU_NEED_SEGCBLIST                         
141         def_bool ( TREE_RCU || TREE_SRCU || TA    
142                                                   
143 config RCU_FANOUT                                 
144         int "Tree-based hierarchical RCU fanou    
145         range 2 64 if 64BIT                       
146         range 2 32 if !64BIT                      
147         depends on TREE_RCU && RCU_EXPERT         
148         default 64 if 64BIT                       
149         default 32 if !64BIT                      
150         help                                      
151           This option controls the fanout of h    
152           of RCU, allowing RCU to work efficie    
153           large numbers of CPUs.  This value m    
154           root of NR_CPUS, which allows NR_CPU    
155           The default value of RCU_FANOUT shou    
156           systems, but if you are stress-testi    
157           itself, small RCU_FANOUT values allo    
158           code paths on small(er) systems.        
159                                                   
160           Select a specific number if testing     
161           Take the default if unsure.             
162                                                   
163 config RCU_FANOUT_LEAF                            
164         int "Tree-based hierarchical RCU leaf-    
165         range 2 64 if 64BIT && !RCU_STRICT_GRA    
166         range 2 32 if !64BIT && !RCU_STRICT_GR    
167         range 2 3 if RCU_STRICT_GRACE_PERIOD      
168         depends on TREE_RCU && RCU_EXPERT         
169         default 16 if !RCU_STRICT_GRACE_PERIOD    
170         default 2 if RCU_STRICT_GRACE_PERIOD      
171         help                                      
172           This option controls the leaf-level     
173           implementations of RCU, and allows t    
174           against lock contention.  Systems th    
175           scheduling-clock interrupts for ener    
176           want the default because the smaller    
177           lock contention levels acceptably lo    
178           (hundreds or thousands of CPUs) will    
179           value to the maximum value possible     
180           number of cache misses incurred duri    
181           initialization.  These systems tend     
182           are not helped by synchronized inter    
183           skew them, which reduces lock conten    
184           leaf-level fanouts work well.  That     
185           fanout to a large number will likely    
186           lock contention on the leaf-level rc    
187           you boot with the skew_tick kernel p    
188                                                   
189           Select a specific number if testing     
190                                                   
191           Select the maximum permissible value    
192           please understand that you may also     
193           kernel boot parameter to avoid conte    
194           structure's locks.                      
195                                                   
196           Take the default if unsure.             
197                                                   
198 config RCU_BOOST                                  
199         bool "Enable RCU priority boosting"       
200         depends on (RT_MUTEXES && PREEMPT_RCU     
201         default y if PREEMPT_RT                   
202         help                                      
203           This option boosts the priority of p    
204           block the current preemptible RCU gr    
205           This option also prevents heavy load    
206           callback invocation.                    
207                                                   
208           Say Y here if you are working with r    
209           Say N here if you are unsure.           
210                                                   
211 config RCU_BOOST_DELAY                            
212         int "Milliseconds to delay boosting af    
213         range 0 3000                              
214         depends on RCU_BOOST                      
215         default 500                               
216         help                                      
217           This option specifies the time to wa    
218           a given grace period before priority    
219           readers blocking that grace period.     
220           blocking an expedited RCU grace peri    
221                                                   
222           Accept the default if unsure.           
223                                                   
224 config RCU_EXP_KTHREAD                            
225         bool "Perform RCU expedited work in a     
226         depends on RCU_BOOST && RCU_EXPERT        
227         default !PREEMPT_RT && NR_CPUS <= 32      
228         help                                      
229           Use this option to further reduce th    
230           grace periods at the expense of bein    
231                                                   
232           This option is disabled by default o    
233           disable expedited grace periods afte    
234           setting rcupdate.rcu_normal_after_bo    
235                                                   
236           Accept the default if unsure.           
237                                                   
238 config RCU_NOCB_CPU                               
239         bool "Offload RCU callback processing     
240         depends on TREE_RCU                       
241         depends on RCU_EXPERT || NO_HZ_FULL       
242         default n                                 
243         help                                      
244           Use this option to reduce OS jitter     
245           real-time workloads.  It can also be    
246           callback invocation to energy-effici    
247           asymmetric multiprocessors.  The pri    
248           is that the overhead of call_rcu() i    
249           workloads will incur significant inc    
250           rates.                                  
251                                                   
252           This option offloads callback invoca    
253           specified at boot time by the rcu_no    
254           such CPU, a kthread ("rcuox/N") will    
255           callbacks, where the "N" is the CPU     
256           the "x" is "p" for RCU-preempt (PREE    
257           RCU-sched (!PREEMPTION kernels).  No    
258           from running on the specified CPUs,     
259           preempted between each callback, and    
260           be used to force the kthreads to run    
261           desired.                                
262                                                   
263           Say Y here if you need reduced OS ji    
264           Say N here if you are unsure.           
265                                                   
266 config RCU_NOCB_CPU_DEFAULT_ALL                   
267         bool "Offload RCU callback processing     
268         depends on RCU_NOCB_CPU                   
269         default n                                 
270         help                                      
271           Use this option to offload callback     
272           by default, in the absence of the rc    
273           parameter. This also avoids the need    
274           to achieve the effect of offloading     
275                                                   
276           Say Y here if you want offload all C    
277           Say N here if you are unsure.           
278                                                   
279 config RCU_NOCB_CPU_CB_BOOST                      
280         bool "Offload RCU callback from real-t    
281         depends on RCU_NOCB_CPU && RCU_BOOST      
282         default y if PREEMPT_RT                   
283         help                                      
284           Use this option to invoke offloaded     
285           to avoid starvation by heavy SCHED_O    
286           Of course, running as SCHED_FIFO dur    
287           cause the rcuo[ps] kthreads to monop    
288           of milliseconds or more.  Therefore,    
289           it is your responsibility to ensure     
290           tasks either run with higher priorit    
291                                                   
292           Say Y here if you want to set RT pri    
293           Say N here if you are building a !PR    
294                                                   
295 config TASKS_TRACE_RCU_READ_MB                    
296         bool "Tasks Trace RCU readers use memo    
297         depends on RCU_EXPERT && TASKS_TRACE_R    
298         default PREEMPT_RT || NR_CPUS < 8         
299         help                                      
300           Use this option to further reduce th    
301           to CPUs executing in userspace or id    
302           RCU grace periods.  Given that a rea    
303           the rcupdate.rcu_task_ipi_delay kern    
304           eliminates such IPIs for many worklo    
305           of this Kconfig option is important     
306           real-time installations and for batt    
307           hence the default chosen above.         
308                                                   
309           Say Y here if you hate IPIs.            
310           Say N here if you hate read-side mem    
311           Take the default if you are unsure.     
312                                                   
313 config RCU_LAZY                                   
314         bool "RCU callback lazy invocation fun    
315         depends on RCU_NOCB_CPU                   
316         default n                                 
317         help                                      
318           To save power, batch RCU callbacks a    
319           pressure, or callback list growing t    
320                                                   
321           Requires rcu_nocbs=all to be set.       
322                                                   
323           Use rcutree.enable_rcu_lazy=0 to tur    
324                                                   
325 config RCU_LAZY_DEFAULT_OFF                       
326         bool "Turn RCU lazy invocation off by     
327         depends on RCU_LAZY                       
328         default n                                 
329         help                                      
330           Allows building the kernel with CONF    
331           off. Boot time param rcutree.enable_    
332           it back on.                             
333                                                   
334 config RCU_DOUBLE_CHECK_CB_TIME                   
335         bool "RCU callback-batch backup time c    
336         depends on RCU_EXPERT                     
337         default n                                 
338         help                                      
339           Use this option to provide more prec    
340           rcutree.rcu_resched_ns module parame    
341           a single RCU callback might run for     
342           thus defeating the 32-callback batch    
343           cost of the fine-grained but expensi    
344                                                   
345           This option rounds rcutree.rcu_resch    
346           jiffy, and overrides the 32-callback    
347           is exceeded.                            
348                                                   
349           Say Y here if you need tighter callb    
350           Say N here if you are unsure.           
351                                                   
352 endmenu # "RCU Subsystem"                         
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php