linux/kernel/rcu
Paul E. McKenney ab5e869c1f rcu: Make rcu_nocb_wait_gp() check if GP already requested
This commit makes rcu_nocb_wait_gp() check rdp->gp_seq_needed to see
if the current CPU already knows about the needed grace period having
already been requested.  If so, it avoids acquiring the corresponding
leaf rcu_node structure's ->lock, thus decreasing contention.  This
optimization is intended for cases where either multiple leader rcuo
kthreads are running on the same CPU or these kthreads are running on
a non-offloaded (e.g., housekeeping) CPU.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
[ paulmck: Move lock release past "if" as suggested by Joel Fernandes. ]
[ paulmck: Fix caching of furthest-future requested grace period. ]
2018-07-12 15:38:42 -07:00
..
Kconfig rcu: Drive TASKS_RCU directly off of PREEMPT 2017-08-17 07:26:04 -07:00
Kconfig.debug rcu: Move RCU debug Kconfig options to kernel/rcu 2017-06-08 18:52:44 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rcu_segcblist.c rcu: Simplify and inline cpu_needs_another_gp() 2018-05-15 10:30:59 -07:00
rcu_segcblist.h rcu: Simplify and inline cpu_needs_another_gp() 2018-05-15 10:30:59 -07:00
rcu.h rcutorture: Convert rcutorture_get_gp_data() to ->gp_seq 2018-07-12 14:27:57 -07:00
rcuperf.c rcu: Make rcutorture's batches-completed API use ->gp_seq 2018-07-12 14:27:47 -07:00
rcutorture.c rcutorture: Convert rcutorture_get_gp_data() to ->gp_seq 2018-07-12 14:27:57 -07:00
srcutiny.c srcu: Add cleanup_srcu_struct_quiesced() 2018-05-15 10:27:56 -07:00
srcutree.c rcutorture: Convert rcutorture_get_gp_data() to ->gp_seq 2018-07-12 14:27:57 -07:00
sync.c doc: Fix various RCU docbook comment-header problems 2017-10-19 22:26:11 -04:00
tiny.c srcu: Move rcu_scheduler_starting() from Tiny RCU to Tiny SRCU 2017-07-24 16:03:22 -07:00
tree_exp.h rcu: Make expedited GPs handle CPU 0 being offline 2018-07-12 12:36:06 -07:00
tree_plugin.h rcu: Make rcu_nocb_wait_gp() check if GP already requested 2018-07-12 15:38:42 -07:00
tree.c rcu: Make rcu_nocb_wait_gp() check if GP already requested 2018-07-12 15:38:42 -07:00
tree.h rcu: Move from ->need_future_gp[] to ->gp_seq_needed 2018-07-12 15:37:48 -07:00
update.c rcu: Move __rcu_read_lock() and __rcu_read_unlock() to tree_plugin.h 2018-05-15 10:27:41 -07:00