rcu: Drive TASKS_RCU directly off of PREEMPT
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 25 May 2017 15:05:00 +0000 (08:05 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 17 Aug 2017 14:26:04 +0000 (07:26 -0700)
commit7e42776d5ed1fe9a941ed8876c5d15cd7cf5d89f
tree254e896f95ad0aa9e3084645c6779d6b866d6f96
parent8be6e1b15c54402106e6ba9bc706e685458b2d2d
rcu: Drive TASKS_RCU directly off of PREEMPT

The actual use of TASKS_RCU is only when PREEMPT, otherwise RCU-sched
is used instead.  This commit therefore makes synchronize_rcu_tasks()
and call_rcu_tasks() available always, but mapped to synchronize_sched()
and call_rcu_sched(), respectively, when !PREEMPT.  This approach also
allows some #ifdefs to be removed from rcutorture.

Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Acked-by: Ingo Molnar <mingo@kernel.org>
include/linux/rcupdate.h
kernel/rcu/Kconfig
kernel/rcu/rcutorture.c
tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt