linux/kernel/rcu
Paul E. McKenney 68ab0b4263 rcu: Make synchronize_rcu_mult() check for duplicates
Currently, doing synchronize_rcu_mult(call_rcu, call_rcu) might
(or might not) wait for two RCU grace periods.  One approach is
of course "don't do that!", but in CONFIG_PREEMPT=n kernels,
synchronize_rcu_mult(call_rcu, call_rcu_sched) does exactly that.
This results in an ugly #ifdef in sched_cpu_deactivate().

This commit therefore makes __wait_rcu_gp() check for duplicates,
which in turn allows duplicates to be passed to synchronize_rcu_mult()
without risk of waiting twice on the same type of grace period.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2017-06-08 08:25:39 -07:00
..
Makefile rcu: Separately compile large rcu_segcblist functions 2017-05-02 07:21:02 -07:00
rcu_segcblist.c rcu: Separately compile large rcu_segcblist functions 2017-05-02 07:21:02 -07:00
rcu_segcblist.h rcu: Open-code the rcu_cblist_n_lazy_cbs() function 2017-05-02 09:22:48 -07:00
rcu.h srcu: Merge ->srcu_state into ->srcu_gp_seq 2017-04-18 11:38:22 -07:00
rcuperf.c rcuperf: Add writer_holdoff boot parameter 2017-06-08 08:25:32 -07:00
rcutorture.c srcu: Shrink Tiny SRCU a bit more 2017-06-08 08:25:31 -07:00
srcu.c srcu: Make Classic and Tree SRCU announce themselves at bootup 2017-06-08 08:25:30 -07:00
srcutiny.c srcu: Shrink Tiny SRCU a bit 2017-06-08 08:25:38 -07:00
srcutree.c srcu: Add DEBUG_OBJECTS_RCU_HEAD functionality 2017-06-08 08:25:39 -07:00
sync.c locking, rcu, cgroup: Avoid synchronize_sched() in __cgroup_procs_write() 2016-08-18 15:36:59 +02:00
tiny_plugin.h srcu: Allow SRCU to access rcu_scheduler_active 2017-04-18 11:38:18 -07:00
tiny.c rcu: Semicolon inside RCU_TRACE() for Tiny RCU 2017-04-18 11:38:17 -07:00
tree_exp.h rcu: Make sync_rcu_preempt_exp_done() return bool 2017-06-08 08:25:27 -07:00
tree_plugin.h rcu: Add lockdep_assert_held() teeth to tree_plugin.h 2017-06-08 08:25:37 -07:00
tree_trace.c rcu: Open-code the rcu_cblist_n_lazy_cbs() function 2017-05-02 09:22:48 -07:00
tree.c rcu: Add lockdep_assert_held() teeth to tree.c 2017-06-08 08:25:37 -07:00
tree.h rcu: Complain if blocking in preemptible RCU read-side critical section 2017-06-08 08:25:24 -07:00
update.c rcu: Make synchronize_rcu_mult() check for duplicates 2017-06-08 08:25:39 -07:00