diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-21 15:54:12 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-21 15:54:12 -0400 |
| commit | 888a6f77e0418b049f83d37547c209b904d30af4 (patch) | |
| tree | 42cdb9f781d2177e6b380e69a66a27ec7705f51f /init | |
| parent | 31b7eab27a314b153d8fa07ba9e9ec00a98141e1 (diff) | |
| parent | 6506cf6ce68d78a5470a8360c965dafe8e4b78e3 (diff) | |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)
sched: fix RCU lockdep splat from task_group()
rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value
sched: suppress RCU lockdep splat in task_fork_fair
net: suppress RCU lockdep false positive in sock_update_classid
rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held
rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter
rcu: Add tracing data to support queueing models
rcu: fix sparse errors in rcutorture.c
rcu: only one evaluation of arg in rcu_dereference_check() unless sparse
kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC
rcu: fix _oddness handling of verbose stall warnings
rcu: performance fixes to TINY_PREEMPT_RCU callback checking
rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes
vhost: add __rcu annotations
rcu: add comment stating that list_empty() applies to RCU-protected lists
rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU
rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU
rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods
rcu: document ways of stalling updates in low-memory situations
rcu: repair code-duplication FIXMEs
...
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/init/Kconfig b/init/Kconfig index 2de5b1cbadd9..a619a1ac7f4c 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -340,6 +340,7 @@ choice | |||
| 340 | 340 | ||
| 341 | config TREE_RCU | 341 | config TREE_RCU |
| 342 | bool "Tree-based hierarchical RCU" | 342 | bool "Tree-based hierarchical RCU" |
| 343 | depends on !PREEMPT && SMP | ||
| 343 | help | 344 | help |
| 344 | This option selects the RCU implementation that is | 345 | This option selects the RCU implementation that is |
| 345 | designed for very large SMP system with hundreds or | 346 | designed for very large SMP system with hundreds or |
| @@ -347,7 +348,7 @@ config TREE_RCU | |||
| 347 | smaller systems. | 348 | smaller systems. |
| 348 | 349 | ||
| 349 | config TREE_PREEMPT_RCU | 350 | config TREE_PREEMPT_RCU |
| 350 | bool "Preemptable tree-based hierarchical RCU" | 351 | bool "Preemptible tree-based hierarchical RCU" |
| 351 | depends on PREEMPT | 352 | depends on PREEMPT |
| 352 | help | 353 | help |
| 353 | This option selects the RCU implementation that is | 354 | This option selects the RCU implementation that is |
| @@ -365,8 +366,22 @@ config TINY_RCU | |||
| 365 | is not required. This option greatly reduces the | 366 | is not required. This option greatly reduces the |
| 366 | memory footprint of RCU. | 367 | memory footprint of RCU. |
| 367 | 368 | ||
| 369 | config TINY_PREEMPT_RCU | ||
| 370 | bool "Preemptible UP-only small-memory-footprint RCU" | ||
| 371 | depends on !SMP && PREEMPT | ||
| 372 | help | ||
| 373 | This option selects the RCU implementation that is designed | ||
| 374 | for real-time UP systems. This option greatly reduces the | ||
| 375 | memory footprint of RCU. | ||
| 376 | |||
| 368 | endchoice | 377 | endchoice |
| 369 | 378 | ||
| 379 | config PREEMPT_RCU | ||
| 380 | def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU ) | ||
| 381 | help | ||
| 382 | This option enables preemptible-RCU code that is common between | ||
| 383 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. | ||
| 384 | |||
| 370 | config RCU_TRACE | 385 | config RCU_TRACE |
| 371 | bool "Enable tracing for RCU" | 386 | bool "Enable tracing for RCU" |
| 372 | depends on TREE_RCU || TREE_PREEMPT_RCU | 387 | depends on TREE_RCU || TREE_PREEMPT_RCU |
| @@ -387,9 +402,12 @@ config RCU_FANOUT | |||
| 387 | help | 402 | help |
| 388 | This option controls the fanout of hierarchical implementations | 403 | This option controls the fanout of hierarchical implementations |
| 389 | of RCU, allowing RCU to work efficiently on machines with | 404 | of RCU, allowing RCU to work efficiently on machines with |
| 390 | large numbers of CPUs. This value must be at least the cube | 405 | large numbers of CPUs. This value must be at least the fourth |
| 391 | root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit | 406 | root of NR_CPUS, which allows NR_CPUS to be insanely large. |
| 392 | systems and up to 262,144 for 64-bit systems. | 407 | The default value of RCU_FANOUT should be used for production |
| 408 | systems, but if you are stress-testing the RCU implementation | ||
| 409 | itself, small RCU_FANOUT values allow you to test large-system | ||
| 410 | code paths on small(er) systems. | ||
| 393 | 411 | ||
| 394 | Select a specific number if testing RCU itself. | 412 | Select a specific number if testing RCU itself. |
| 395 | Take the default if unsure. | 413 | Take the default if unsure. |
