linux/kernel/rcu
Paul E. McKenney 15fecf89e4 srcu: Abstract multi-tail callback list handling
RCU has only one multi-tail callback list, which is implemented via
the nxtlist, nxttail, nxtcompleted, qlen_lazy, and qlen fields in the
rcu_data structure, and whose operations are open-code throughout the
Tree RCU implementation.  This has been more or less OK in the past,
but upcoming callback-list optimizations in SRCU could really use
a multi-tail callback list there as well.

This commit therefore abstracts the multi-tail callback list handling
into a new kernel/rcu/rcu_segcblist.h file, and uses this new API.
The simple head-and-tail pointer callback list is also abstracted and
applied everywhere except for the NOCB callback-offload lists.  (Yes,
the plan is to apply them there as well, but this commit is already
bigger than would be good.)

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
2017-04-18 11:38:18 -07:00
..
Makefile rcutorture: Add RCU grace-period performance tests 2016-03-31 13:37:38 -07:00
rcu_segcblist.h srcu: Abstract multi-tail callback list handling 2017-04-18 11:38:18 -07:00
rcu.h rcu: Semicolon inside RCU_TRACE() for rcu.h 2017-04-18 11:38:17 -07:00
rcuperf.c sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h> 2017-03-02 08:42:27 +01:00
rcutorture.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
srcu.c srcu: Check for tardy grace-period activity in cleanup_srcu_struct() 2017-04-18 11:30:58 -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 rcu: Semicolon inside RCU_TRACE() for Tiny RCU 2017-04-18 11:38:17 -07:00
tiny.c rcu: Semicolon inside RCU_TRACE() for Tiny RCU 2017-04-18 11:38:17 -07:00
tree_exp.h rcu: Place guard on rcu_all_qs() and rcu_note_context_switch() actions 2017-04-18 11:38:18 -07:00
tree_plugin.h srcu: Abstract multi-tail callback list handling 2017-04-18 11:38:18 -07:00
tree_trace.c srcu: Abstract multi-tail callback list handling 2017-04-18 11:38:18 -07:00
tree.c srcu: Abstract multi-tail callback list handling 2017-04-18 11:38:18 -07:00
tree.h srcu: Abstract multi-tail callback list handling 2017-04-18 11:38:18 -07:00
update.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00