aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/init_task.h
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2010-09-27 20:25:23 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-11-30 01:01:54 -0500
commit24278d148316d2180be6df40e06db013d8b232b8 (patch)
tree6a579d483f8f799b352e39b972a7e03cc6204fc1 /include/linux/init_task.h
parentb2c0710c464ede15e1fc52fb1e7ee9ba54cea186 (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.h9
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