diff options
| author | Paul E. McKenney <paul.mckenney@linaro.org> | 2010-09-27 20:25:23 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-11-30 01:01:54 -0500 |
| commit | 24278d148316d2180be6df40e06db013d8b232b8 (patch) | |
| tree | 6a579d483f8f799b352e39b972a7e03cc6204fc1 /init | |
| parent | b2c0710c464ede15e1fc52fb1e7ee9ba54cea186 (diff) | |
rcu: priority boosting for TINY_PREEMPT_RCU
Add priority boosting, but only for TINY_PREEMPT_RCU. This is enabled
by the default-off RCU_BOOST kernel parameter. The priority to which to
boost preempted RCU readers is controlled by the RCU_BOOST_PRIO kernel
parameter (defaulting to real-time priority 1) and the time to wait
before boosting the readers blocking a given grace period is controlled
by the RCU_BOOST_DELAY kernel parameter (defaulting to 500 milliseconds).
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index a619a1ac7f4c..48efefcac12a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -450,6 +450,45 @@ config TREE_RCU_TRACE | |||
| 450 | TREE_PREEMPT_RCU implementations, permitting Makefile to | 450 | TREE_PREEMPT_RCU implementations, permitting Makefile to |
| 451 | trivially select kernel/rcutree_trace.c. | 451 | trivially select kernel/rcutree_trace.c. |
| 452 | 452 | ||
| 453 | config RCU_BOOST | ||
| 454 | bool "Enable RCU priority boosting" | ||
| 455 | depends on RT_MUTEXES && TINY_PREEMPT_RCU | ||
| 456 | default n | ||
| 457 | help | ||
| 458 | This option boosts the priority of preempted RCU readers that | ||
| 459 | block the current preemptible RCU grace period for too long. | ||
| 460 | This option also prevents heavy loads from blocking RCU | ||
| 461 | callback invocation for all flavors of RCU. | ||
| 462 | |||
| 463 | Say Y here if you are working with real-time apps or heavy loads | ||
| 464 | Say N here if you are unsure. | ||
| 465 | |||
| 466 | config RCU_BOOST_PRIO | ||
| 467 | int "Real-time priority to boost RCU readers to" | ||
| 468 | range 1 99 | ||
| 469 | depends on RCU_BOOST | ||
| 470 | default 1 | ||
| 471 | help | ||
| 472 | This option specifies the real-time priority to which preempted | ||
| 473 | RCU readers are to be boosted. If you are working with CPU-bound | ||
| 474 | real-time applications, you should specify a priority higher then | ||
| 475 | the highest-priority CPU-bound application. | ||
| 476 | |||
| 477 | Specify the real-time priority, or take the default if unsure. | ||
| 478 | |||
| 479 | config RCU_BOOST_DELAY | ||
| 480 | int "Milliseconds to delay boosting after RCU grace-period start" | ||
| 481 | range 0 3000 | ||
| 482 | depends on RCU_BOOST | ||
| 483 | default 500 | ||
| 484 | help | ||
| 485 | This option specifies the time to wait after the beginning of | ||
| 486 | a given grace period before priority-boosting preempted RCU | ||
| 487 | readers blocking that grace period. Note that any RCU reader | ||
| 488 | blocking an expedited RCU grace period is boosted immediately. | ||
| 489 | |||
| 490 | Accept the default if unsure. | ||
| 491 | |||
| 453 | endmenu # "RCU Subsystem" | 492 | endmenu # "RCU Subsystem" |
| 454 | 493 | ||
| 455 | config IKCONFIG | 494 | config IKCONFIG |
