rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sat, 31 Oct 2015 07:59:01 +0000 (00:59 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 8 Dec 2015 01:01:31 +0000 (17:01 -0800)
commit7c9906ca5e582a773fff696975e312cef58a7386
tree1155e2ed10709b9d3efa87b2f4b826cc886e84eb
parentd117c8aa1d511f76401337620b9c4ffb4c886579
rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}()

This commit replaces a local_irq_save()/local_irq_restore() pair with
a lockdep assertion that interrupts are already disabled.  This should
remove the corresponding overhead from the interrupt entry/exit fastpaths.

This change was inspired by the fact that Iftekhar Ahmed's mutation
testing showed that removing rcu_irq_enter()'s call to local_ird_restore()
had no effect, which might indicate that interrupts were always enabled
anyway.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h
include/linux/rcutiny.h
include/linux/rcutree.h
include/linux/tracepoint.h
kernel/rcu/tree.c