diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-06-12 16:30:25 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2014-07-09 12:15:01 -0400 |
commit | abaa93d9e1de2c29297e69ddba8ddd38f15064cf (patch) | |
tree | 127f64c80be6f30fed7265d42cbfc5b449853618 /include/linux/init_task.h | |
parent | 48bd8e9b82a750b983823f391c67e70553757afa (diff) |
rcu: Simplify priority boosting by putting rt_mutex in rcu_node
RCU priority boosting currently checks for boosting via a pointer in
task_struct. However, this is not needed: As Oleg noted, if the
rt_mutex is placed in the rcu_node instead of on the booster's stack,
the boostee can simply check it see if it owns the lock. This commit
makes this change, shrinking task_struct by one pointer and the kernel
by thirteen lines.
Suggested-by: Oleg Nesterov <oleg@redhat.com>
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, 1 insertions, 8 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 6df7f9fe0d01..2bb4c4f3531a 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -102,12 +102,6 @@ extern struct group_info init_groups; | |||
102 | #define INIT_IDS | 102 | #define INIT_IDS |
103 | #endif | 103 | #endif |
104 | 104 | ||
105 | #ifdef CONFIG_RCU_BOOST | ||
106 | #define INIT_TASK_RCU_BOOST() \ | ||
107 | .rcu_boost_mutex = NULL, | ||
108 | #else | ||
109 | #define INIT_TASK_RCU_BOOST() | ||
110 | #endif | ||
111 | #ifdef CONFIG_TREE_PREEMPT_RCU | 105 | #ifdef CONFIG_TREE_PREEMPT_RCU |
112 | #define INIT_TASK_RCU_TREE_PREEMPT() \ | 106 | #define INIT_TASK_RCU_TREE_PREEMPT() \ |
113 | .rcu_blocked_node = NULL, | 107 | .rcu_blocked_node = NULL, |
@@ -119,8 +113,7 @@ extern struct group_info init_groups; | |||
119 | .rcu_read_lock_nesting = 0, \ | 113 | .rcu_read_lock_nesting = 0, \ |
120 | .rcu_read_unlock_special = 0, \ | 114 | .rcu_read_unlock_special = 0, \ |
121 | .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), \ | 115 | .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), \ |
122 | INIT_TASK_RCU_TREE_PREEMPT() \ | 116 | INIT_TASK_RCU_TREE_PREEMPT() |
123 | INIT_TASK_RCU_BOOST() | ||
124 | #else | 117 | #else |
125 | #define INIT_TASK_RCU_PREEMPT(tsk) | 118 | #define INIT_TASK_RCU_PREEMPT(tsk) |
126 | #endif | 119 | #endif |