rcu: rcu_qs -- Use raise_softirq_irqoff to not save irqs twice
authorCyrill Gorcunov <gorcunov@gmail.com>
Thu, 24 Jan 2019 18:14:37 +0000 (21:14 +0300)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Tue, 26 Mar 2019 21:37:49 +0000 (14:37 -0700)
The rcu_qs is disabling IRQs by self so no need to do the same in raise_softirq
but instead we can save some cycles using raise_softirq_irqoff directly.

CC: Paul E. McKenney <paulmck@linux.ibm.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
kernel/rcu/tiny.c

index 911bd90..477b4eb 100644 (file)
@@ -52,7 +52,7 @@ void rcu_qs(void)
        local_irq_save(flags);
        if (rcu_ctrlblk.donetail != rcu_ctrlblk.curtail) {
                rcu_ctrlblk.donetail = rcu_ctrlblk.curtail;
-               raise_softirq(RCU_SOFTIRQ);
+               raise_softirq_irqoff(RCU_SOFTIRQ);
        }
        local_irq_restore(flags);
 }