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 /include/linux/init_task.h | |
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 'include/linux/init_task.h')
-rw-r--r-- | include/linux/init_task.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 2fea6c8ef6ba..69f91aacdeee 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -81,6 +81,12 @@ extern struct group_info init_groups; | |||
81 | */ | 81 | */ |
82 | # define CAP_INIT_BSET CAP_FULL_SET | 82 | # define CAP_INIT_BSET CAP_FULL_SET |
83 | 83 | ||
84 | #ifdef CONFIG_RCU_BOOST | ||
85 | #define INIT_TASK_RCU_BOOST() \ | ||
86 | .rcu_boost_mutex = NULL, | ||
87 | #else | ||
88 | #define INIT_TASK_RCU_BOOST() | ||
89 | #endif | ||
84 | #ifdef CONFIG_TREE_PREEMPT_RCU | 90 | #ifdef CONFIG_TREE_PREEMPT_RCU |
85 | #define INIT_TASK_RCU_TREE_PREEMPT() \ | 91 | #define INIT_TASK_RCU_TREE_PREEMPT() \ |
86 | .rcu_blocked_node = NULL, | 92 | .rcu_blocked_node = NULL, |
@@ -92,7 +98,8 @@ extern struct group_info init_groups; | |||
92 | .rcu_read_lock_nesting = 0, \ | 98 | .rcu_read_lock_nesting = 0, \ |
93 | .rcu_read_unlock_special = 0, \ | 99 | .rcu_read_unlock_special = 0, \ |
94 | .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), \ | 100 | .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), \ |
95 | INIT_TASK_RCU_TREE_PREEMPT() | 101 | INIT_TASK_RCU_TREE_PREEMPT() \ |
102 | INIT_TASK_RCU_BOOST() | ||
96 | #else | 103 | #else |
97 | #define INIT_TASK_RCU_PREEMPT(tsk) | 104 | #define INIT_TASK_RCU_PREEMPT(tsk) |
98 | #endif | 105 | #endif |