kernel_optimize_test/kernel/rcu
Paul E. McKenney 296181d78d rcu/nocb: Reduce __call_rcu_nocb_wake() leaf rcu_node ->lock contention
Currently, __call_rcu_nocb_wake() advances callbacks each time that it
detects excessive numbers of callbacks, though only if it succeeds in
conditionally acquiring its leaf rcu_node structure's ->lock.  Despite
the conditional acquisition of ->lock, this does increase contention.
This commit therefore avoids advancing callbacks unless there are
callbacks in ->cblist whose grace period has completed and advancing
has not yet been done during this jiffy.

Note that this decision does not take the presence of new callbacks
into account.  That is because on this code path, there will always be
at least one new callback, namely the one we just enqueued.

Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
2019-08-13 14:38:24 -07:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.debug rcu: Add support for consolidated-RCU reader checking 2019-08-09 11:00:35 -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/nocb: Add bypass callback queueing 2019-08-13 14:37:32 -07:00
rcu_segcblist.h rcu/nocb: Add bypass callback queueing 2019-08-13 14:37:32 -07:00
rcu.h rcu: Add kernel parameter to dump trace after RCU CPU stall warning 2019-08-01 14:05:51 -07:00
rcuperf.c rcuperf: Make rcuperf kernel test more robust for !expedited mode 2019-08-01 14:30:22 -07:00
rcutorture.c rcu/nocb: Print no-CBs diagnostics when rcutorture writer unduly delayed 2019-08-13 14:38:24 -07:00
srcutiny.c srcu: Remove cleanup_srcu_struct_quiesced() 2019-03-26 14:39:24 -07:00
srcutree.c srcu: Avoid srcutorture security-based pointer obfuscation 2019-08-01 14:05:51 -07:00
sync.c rcu/sync: Simplify the state machine 2019-05-28 09:05:23 -07:00
tiny.c rcu: rcu_qs -- Use raise_softirq_irqoff to not save irqs twice 2019-03-26 14:37:49 -07:00
tree_exp.h rcu: Fix spelling mistake "greate"->"great" 2019-08-12 11:25:06 -07:00
tree_plugin.h rcu/nocb: Reduce __call_rcu_nocb_wake() leaf rcu_node ->lock contention 2019-08-13 14:38:24 -07:00
tree_stall.h rcu/nocb: Print no-CBs diagnostics when rcutorture writer unduly delayed 2019-08-13 14:38:24 -07:00
tree.c rcu/nocb: Advance CBs after merge in rcutree_migrate_callbacks() 2019-08-13 14:38:24 -07:00
tree.h rcu/nocb: Print no-CBs diagnostics when rcutorture writer unduly delayed 2019-08-13 14:38:24 -07:00
update.c Merge branches 'consolidate.2019.08.01b', 'fixes.2019.08.12a', 'lists.2019.08.13a' and 'torture.2019.08.01b' into HEAD 2019-08-13 14:30:30 -07:00