Kconfig (e9dc122166b8d863d3057a66ada04838e5548e52) Kconfig (f41d911f8c49a5d65c86504c19e8204bb605c4fd)
1config ARCH
2 string
3 option env="ARCH"
4
5config KERNELVERSION
6 string
7 option env="KERNELVERSION"
8

--- 302 unchanged lines hidden (view full) ---

311 select INOTIFY
312
313menu "RCU Subsystem"
314
315choice
316 prompt "RCU Implementation"
317 default TREE_RCU
318
1config ARCH
2 string
3 option env="ARCH"
4
5config KERNELVERSION
6 string
7 option env="KERNELVERSION"
8

--- 302 unchanged lines hidden (view full) ---

311 select INOTIFY
312
313menu "RCU Subsystem"
314
315choice
316 prompt "RCU Implementation"
317 default TREE_RCU
318
319config CLASSIC_RCU
320 bool "Classic RCU"
321 help
322 This option selects the classic RCU implementation that is
323 designed for best read-side performance on non-realtime
324 systems.
325
326 Select this option if you are unsure.
327
328config TREE_RCU
329 bool "Tree-based hierarchical RCU"
330 help
331 This option selects the RCU implementation that is
332 designed for very large SMP system with hundreds or
319config TREE_RCU
320 bool "Tree-based hierarchical RCU"
321 help
322 This option selects the RCU implementation that is
323 designed for very large SMP system with hundreds or
333 thousands of CPUs.
324 thousands of CPUs. It also scales down nicely to
325 smaller systems.
334
335config PREEMPT_RCU
336 bool "Preemptible RCU"
337 depends on PREEMPT
338 help
339 This option reduces the latency of the kernel by making certain
340 RCU sections preemptible. Normally RCU code is non-preemptible, if
341 this option is selected then read-only RCU sections become
342 preemptible. This helps latency, but may expose bugs due to
343 now-naive assumptions about each RCU read-side critical section
344 remaining on a given CPU through its execution.
345
326
327config PREEMPT_RCU
328 bool "Preemptible RCU"
329 depends on PREEMPT
330 help
331 This option reduces the latency of the kernel by making certain
332 RCU sections preemptible. Normally RCU code is non-preemptible, if
333 this option is selected then read-only RCU sections become
334 preemptible. This helps latency, but may expose bugs due to
335 now-naive assumptions about each RCU read-side critical section
336 remaining on a given CPU through its execution.
337
338config TREE_PREEMPT_RCU
339 bool "Preemptable tree-based hierarchical RCU"
340 depends on PREEMPT
341 help
342 This option selects the RCU implementation that is
343 designed for very large SMP systems with hundreds or
344 thousands of CPUs, but for which real-time response
345 is also required.
346
346endchoice
347
348config RCU_TRACE
349 bool "Enable tracing for RCU"
347endchoice
348
349config RCU_TRACE
350 bool "Enable tracing for RCU"
350 depends on TREE_RCU || PREEMPT_RCU
351 depends on TREE_RCU || PREEMPT_RCU || TREE_PREEMPT_RCU
351 help
352 This option provides tracing in RCU which presents stats
353 in debugfs for debugging RCU implementation.
354
355 Say Y here if you want to enable RCU tracing
356 Say N if you are unsure.
357
358config RCU_FANOUT
359 int "Tree-based hierarchical RCU fanout value"
360 range 2 64 if 64BIT
361 range 2 32 if !64BIT
352 help
353 This option provides tracing in RCU which presents stats
354 in debugfs for debugging RCU implementation.
355
356 Say Y here if you want to enable RCU tracing
357 Say N if you are unsure.
358
359config RCU_FANOUT
360 int "Tree-based hierarchical RCU fanout value"
361 range 2 64 if 64BIT
362 range 2 32 if !64BIT
362 depends on TREE_RCU
363 depends on TREE_RCU || TREE_PREEMPT_RCU
363 default 64 if 64BIT
364 default 32 if !64BIT
365 help
366 This option controls the fanout of hierarchical implementations
367 of RCU, allowing RCU to work efficiently on machines with
368 large numbers of CPUs. This value must be at least the cube
369 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
370 systems and up to 262,144 for 64-bit systems.
371
372 Select a specific number if testing RCU itself.
373 Take the default if unsure.
374
375config RCU_FANOUT_EXACT
376 bool "Disable tree-based hierarchical RCU auto-balancing"
364 default 64 if 64BIT
365 default 32 if !64BIT
366 help
367 This option controls the fanout of hierarchical implementations
368 of RCU, allowing RCU to work efficiently on machines with
369 large numbers of CPUs. This value must be at least the cube
370 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
371 systems and up to 262,144 for 64-bit systems.
372
373 Select a specific number if testing RCU itself.
374 Take the default if unsure.
375
376config RCU_FANOUT_EXACT
377 bool "Disable tree-based hierarchical RCU auto-balancing"
377 depends on TREE_RCU
378 depends on TREE_RCU || TREE_PREEMPT_RCU
378 default n
379 help
380 This option forces use of the exact RCU_FANOUT value specified,
381 regardless of imbalances in the hierarchy. This is useful for
382 testing RCU itself, and might one day be useful on systems with
383 strong NUMA behavior.
384
385 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
386
387 Say N if unsure.
388
389config TREE_RCU_TRACE
379 default n
380 help
381 This option forces use of the exact RCU_FANOUT value specified,
382 regardless of imbalances in the hierarchy. This is useful for
383 testing RCU itself, and might one day be useful on systems with
384 strong NUMA behavior.
385
386 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
387
388 Say N if unsure.
389
390config TREE_RCU_TRACE
390 def_bool RCU_TRACE && TREE_RCU
391 def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
391 select DEBUG_FS
392 help
392 select DEBUG_FS
393 help
393 This option provides tracing for the TREE_RCU implementation,
394 permitting Makefile to trivially select kernel/rcutree_trace.c.
394 This option provides tracing for the TREE_RCU and
395 TREE_PREEMPT_RCU implementations, permitting Makefile to
396 trivially select kernel/rcutree_trace.c.
395
396config PREEMPT_RCU_TRACE
397 def_bool RCU_TRACE && PREEMPT_RCU
398 select DEBUG_FS
399 help
400 This option provides tracing for the PREEMPT_RCU implementation,
401 permitting Makefile to trivially select kernel/rcupreempt_trace.c.
402

--- 805 unchanged lines hidden ---
397
398config PREEMPT_RCU_TRACE
399 def_bool RCU_TRACE && PREEMPT_RCU
400 select DEBUG_FS
401 help
402 This option provides tracing for the PREEMPT_RCU implementation,
403 permitting Makefile to trivially select kernel/rcupreempt_trace.c.
404

--- 805 unchanged lines hidden ---