rcu: Remove fastpath from __rcu_process_callbacks()
authorAlexander Gordeev <agordeev@redhat.com>
Wed, 11 Feb 2015 14:42:38 +0000 (15:42 +0100)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 26 Feb 2015 20:11:53 +0000 (12:11 -0800)
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>
kernel/rcu/tiny.c

index d4e7fe5..069742d 100644 (file)
@@ -168,17 +168,6 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
        unsigned long flags;
        RCU_TRACE(int cb_count = 0);
 
-       /* If no RCU callbacks ready to invoke, just return. */
-       if (&rcp->rcucblist == rcp->donetail) {
-               RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, 0, -1));
-               RCU_TRACE(trace_rcu_batch_end(rcp->name, 0,
-                                             !!ACCESS_ONCE(rcp->rcucblist),
-                                             need_resched(),
-                                             is_idle_task(current),
-                                             false));
-               return;
-       }
-
        /* Move the ready-to-invoke callbacks to a local list. */
        local_irq_save(flags);
        RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1));