diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 13:06:26 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 13:06:26 -0500 |
| commit | 2af49b6058d857fa5b476db642d4452bf5833ecd (patch) | |
| tree | dbce19fe5db5c34294a911baedd2e91bb897b9ce /init | |
| parent | b08b27213384d1bd6eda04a2b6f788b4cdee0f34 (diff) | |
| parent | 394f4528c523d88daabd50f883a8d6b164075555 (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:
rcu: remove unused __list_for_each_rcu() macro
rculist: fix borked __list_for_each_rcu() macro
rcu: reduce __call_rcu()-induced contention on rcu_node structures
rcu: limit rcu_node leaf-level fanout
rcu: fine-tune grace-period begin/end checks
rcu: Keep gpnum and completed fields synchronized
rcu: Stop chasing QS if another CPU did it for us
rcu: increase synchronize_sched_expedited() batching
rcu: Make synchronize_srcu_expedited() fast if running readers
rcu: fix race condition in synchronize_sched_expedited()
rcu: update documentation/comments for Lai's adoption patch
rcu,cleanup: simplify the code when cpu is dying
rcu,cleanup: move synchronize_sched_expedited() out of sched.c
rcu: get rid of obsolete "classic" names in TREE_RCU tracing
rcu: Distinguish between boosting and boosted
rcu: document TINY_RCU and TINY_PREEMPT_RCU tracing.
rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU
rcu: priority boosting for TINY_PREEMPT_RCU
rcu: move TINY_RCU from softirq to kthread
rcu: add priority-inversion testing to rcutorture
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/init/Kconfig b/init/Kconfig index c9728992a776..526ec1c7456a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -393,7 +393,6 @@ config PREEMPT_RCU | |||
| 393 | 393 | ||
| 394 | config RCU_TRACE | 394 | config RCU_TRACE |
| 395 | bool "Enable tracing for RCU" | 395 | bool "Enable tracing for RCU" |
| 396 | depends on TREE_RCU || TREE_PREEMPT_RCU | ||
| 397 | help | 396 | help |
| 398 | This option provides tracing in RCU which presents stats | 397 | This option provides tracing in RCU which presents stats |
| 399 | in debugfs for debugging RCU implementation. | 398 | in debugfs for debugging RCU implementation. |
| @@ -459,6 +458,60 @@ config TREE_RCU_TRACE | |||
| 459 | TREE_PREEMPT_RCU implementations, permitting Makefile to | 458 | TREE_PREEMPT_RCU implementations, permitting Makefile to |
| 460 | trivially select kernel/rcutree_trace.c. | 459 | trivially select kernel/rcutree_trace.c. |
| 461 | 460 | ||
| 461 | config RCU_BOOST | ||
| 462 | bool "Enable RCU priority boosting" | ||
| 463 | depends on RT_MUTEXES && TINY_PREEMPT_RCU | ||
| 464 | default n | ||
| 465 | help | ||
| 466 | This option boosts the priority of preempted RCU readers that | ||
| 467 | block the current preemptible RCU grace period for too long. | ||
| 468 | This option also prevents heavy loads from blocking RCU | ||
| 469 | callback invocation for all flavors of RCU. | ||
| 470 | |||
| 471 | Say Y here if you are working with real-time apps or heavy loads | ||
| 472 | Say N here if you are unsure. | ||
| 473 | |||
| 474 | config RCU_BOOST_PRIO | ||
| 475 | int "Real-time priority to boost RCU readers to" | ||
| 476 | range 1 99 | ||
| 477 | depends on RCU_BOOST | ||
| 478 | default 1 | ||
| 479 | help | ||
| 480 | This option specifies the real-time priority to which preempted | ||
| 481 | RCU readers are to be boosted. If you are working with CPU-bound | ||
| 482 | real-time applications, you should specify a priority higher then | ||
| 483 | the highest-priority CPU-bound application. | ||
| 484 | |||
| 485 | Specify the real-time priority, or take the default if unsure. | ||
| 486 | |||
| 487 | config RCU_BOOST_DELAY | ||
| 488 | int "Milliseconds to delay boosting after RCU grace-period start" | ||
| 489 | range 0 3000 | ||
| 490 | depends on RCU_BOOST | ||
| 491 | default 500 | ||
| 492 | help | ||
| 493 | This option specifies the time to wait after the beginning of | ||
| 494 | a given grace period before priority-boosting preempted RCU | ||
| 495 | readers blocking that grace period. Note that any RCU reader | ||
| 496 | blocking an expedited RCU grace period is boosted immediately. | ||
| 497 | |||
| 498 | Accept the default if unsure. | ||
| 499 | |||
| 500 | config SRCU_SYNCHRONIZE_DELAY | ||
| 501 | int "Microseconds to delay before waiting for readers" | ||
| 502 | range 0 20 | ||
| 503 | default 10 | ||
| 504 | help | ||
| 505 | This option controls how long SRCU delays before entering its | ||
| 506 | loop waiting on SRCU readers. The purpose of this loop is | ||
| 507 | to avoid the unconditional context-switch penalty that would | ||
| 508 | otherwise be incurred if there was an active SRCU reader, | ||
| 509 | in a manner similar to adaptive locking schemes. This should | ||
| 510 | be set to be a bit longer than the common-case SRCU read-side | ||
| 511 | critical-section overhead. | ||
| 512 | |||
| 513 | Accept the default if unsure. | ||
| 514 | |||
| 462 | endmenu # "RCU Subsystem" | 515 | endmenu # "RCU Subsystem" |
| 463 | 516 | ||
| 464 | config IKCONFIG | 517 | config IKCONFIG |
