linux/kernel/rcu
Paul E. McKenney 3563a438f1 rcu: Avoid redundant quiescent-state chasing
Currently, __note_gp_changes() checks to see if the CPU has slept through
multiple grace periods.  If it has, it resynchronizes that CPU's view
of the grace-period state, which includes whether or not the current
grace period needs a quiescent state from this CPU.  The fact of this
need (or lack thereof) needs to be in two places, rdp->cpu_no_qs.b.norm
and rdp->core_needs_qs.  The former tells RCU's context-switch code to
go get a quiescent state and the latter says that it needs to be reported.
The current code unconditionally sets the former to true, but correctly
sets the latter.

This does not result in failures, but it does unnecessarily increase
the amount of work done on average at context-switch time.  This commit
therefore correctly sets both fields.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2016-08-22 09:35:57 -07:00
..
Makefile rcutorture: Add RCU grace-period performance tests 2016-03-31 13:37:38 -07:00
rcu.h tiny_rcu: Directly force QS when call_rcu_[bh|sched]() on idle_task 2015-01-06 11:01:12 -08:00
rcuperf.c rcutorture: Fix error return code in rcu_perf_init() 2016-06-14 16:03:32 -07:00
rcutorture.c Merge branches 'doc.2016.06.15a', 'fixes.2016.06.15b' and 'torture.2016.06.14a' into HEAD 2016-06-15 16:58:03 -07:00
srcu.c rcu: Add rcu_normal kernel parameter to suppress expediting 2015-12-04 12:26:53 -08:00
sync.c rcu_sync: Cleanup the CONFIG_PROVE_RCU checks 2015-10-06 11:25:45 -07:00
tiny_plugin.h rcu: Make rcu/tiny_plugin.h explicitly non-modular 2016-02-23 19:59:55 -08:00
tiny.c rcu: Use rcu_callback_t in call_rcu*() and friends 2015-10-06 11:08:05 -07:00
tree_exp.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 12:41:29 -07:00
tree_plugin.h rcu: Fix soft lockup for rcu_nocb_kthread 2016-08-22 07:53:20 -07:00
tree_trace.c rcu: Shorten expedited_workdone* to exp_workdone* 2016-03-31 13:34:08 -07:00
tree.c rcu: Avoid redundant quiescent-state chasing 2016-08-22 09:35:57 -07:00
tree.h rcu: Correctly handle sparse possible cpus 2016-06-15 16:00:05 -07:00
update.c rcu: Don't use modular infrastructure in non-modular code 2016-08-22 09:35:27 -07:00