rcu: Streamline code produced by __rcu_read_unlock()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sat, 21 May 2011 12:57:18 +0000 (05:57 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 20 Jul 2011 04:38:53 +0000 (21:38 -0700)
commitbe0e1e21ef707be4d16ea6a96ac9997463e4b8d2
treefe53c0731f5c3a6e56e2358eee9b8f17c3af83f4
parent7765be2fec0f476fcd61812d5f9406b04c765020
rcu: Streamline code produced by __rcu_read_unlock()

Given some common flag combinations, particularly -Os, gcc will inline
rcu_read_unlock_special() despite its being in an unlikely() clause.
Use noinline to prohibit this misoptimization.

In addition, move the second barrier() in __rcu_read_unlock() so that
it is not on the common-case code path.  This will allow the compiler to
generate better code for the common-case path through __rcu_read_unlock().

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
kernel/rcutree_plugin.h