OSDN Git Service

rcu: Avoid unneeded function call in rcu_read_unlock()
authorWaiman Long <longman@redhat.com>
Fri, 27 Aug 2021 02:21:22 +0000 (22:21 -0400)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 16 Sep 2021 17:24:05 +0000 (10:24 -0700)
commit925da92ba5cb0c82d07cdd5049a07e40f54e9c44
treed08eedefce6c6633753798c3ee93fbc02b63b3b9
parentf0b2b2df5423fb369ac762c77900bc7765496d58
rcu: Avoid unneeded function call in rcu_read_unlock()

Since commit aa40c138cc8f3 ("rcu: Report QS for outermost PREEMPT=n
rcu_read_unlock() for strict GPs") the function rcu_read_unlock_strict()
is invoked by the inlined rcu_read_unlock() function.  However,
rcu_read_unlock_strict() is an empty function in production kernels,
which are built with CONFIG_RCU_STRICT_GRACE_PERIOD=n.

There is a mention of rcu_read_unlock_strict() in the BPF verifier,
but this is in a deny-list, meaning that BPF does not care whether
rcu_read_unlock_strict() is ever called.

This commit therefore provides a slight performance improvement
by hoisting the check of CONFIG_RCU_STRICT_GRACE_PERIOD from
rcu_read_unlock_strict() into rcu_read_unlock(), thus avoiding the
pointless call to an empty function.

Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/rcupdate.h
kernel/rcu/tree_plugin.h