aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2015-02-11 09:42:38 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-02-26 15:11:53 -0500
commit915e8a4fe45eab871a862f6467ec7e59864735b2 (patch)
tree208961b9815145417216d6c85abf1a0789b24b70
parent27153acbe1141ceecf098ca5d24c2ae2714c1a5f (diff)
rcu: Remove fastpath from __rcu_process_callbacks()
The standard code path accommodates a condition when no RCU callbacks are ready to invoke. Since size of the code is a priority for tiny RCU, remove the fast path. Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--kernel/rcu/tiny.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
index d4e7fe5f3baf..069742d61c68 100644
--- a/kernel/rcu/tiny.c
+++ b/kernel/rcu/tiny.c
@@ -168,17 +168,6 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
168 unsigned long flags; 168 unsigned long flags;
169 RCU_TRACE(int cb_count = 0); 169 RCU_TRACE(int cb_count = 0);
170 170
171 /* If no RCU callbacks ready to invoke, just return. */
172 if (&rcp->rcucblist == rcp->donetail) {
173 RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, 0, -1));
174 RCU_TRACE(trace_rcu_batch_end(rcp->name, 0,
175 !!ACCESS_ONCE(rcp->rcucblist),
176 need_resched(),
177 is_idle_task(current),
178 false));
179 return;
180 }
181
182 /* Move the ready-to-invoke callbacks to a local list. */ 171 /* Move the ready-to-invoke callbacks to a local list. */
183 local_irq_save(flags); 172 local_irq_save(flags);
184 RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1)); 173 RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1));