aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2016-03-16 19:32:24 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2016-03-31 16:34:11 -0400
commitaff12cdf86e6fa891d1c30c0fad112d138bd7b10 (patch)
treeed88787da7026515173518461e152e02dd947f67 /kernel/rcu/tree.c
parent179e5dcd1e5bdfac1128431d131b31322aedd2bc (diff)
rcu: Consolidate expedited GP code into exp_funnel_lock()
This commit pulls the grace-period-start counter adjustment and tracing from synchronize_rcu_expedited() and synchronize_sched_expedited() into exp_funnel_lock(), thus eliminating some code duplication. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 5b1c8fd89af0..e8fff14e417b 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3653,6 +3653,8 @@ fastpath:
3653 mutex_unlock(&rsp->exp_mutex); 3653 mutex_unlock(&rsp->exp_mutex);
3654 return true; 3654 return true;
3655 } 3655 }
3656 rcu_exp_gp_seq_start(rsp);
3657 trace_rcu_exp_grace_period(rsp->name, s, TPS("start"));
3656 return false; 3658 return false;
3657} 3659}
3658 3660
@@ -3905,9 +3907,6 @@ void synchronize_sched_expedited(void)
3905 if (exp_funnel_lock(rsp, s)) 3907 if (exp_funnel_lock(rsp, s))
3906 return; /* Someone else did our work for us. */ 3908 return; /* Someone else did our work for us. */
3907 3909
3908 rcu_exp_gp_seq_start(rsp);
3909 trace_rcu_exp_grace_period(rsp->name, s, TPS("start"));
3910
3911 /* Initialize the rcu_node tree in preparation for the wait. */ 3910 /* Initialize the rcu_node tree in preparation for the wait. */
3912 sync_rcu_exp_select_cpus(rsp, sync_sched_exp_handler); 3911 sync_rcu_exp_select_cpus(rsp, sync_sched_exp_handler);
3913 3912