Skip to content

Commit

Permalink
srcu: Abstract multi-tail callback list handling
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul E. McKenney committed Apr 18, 2017
1 parent b8c78d3 commit 15fecf8
Show file tree
Hide file tree
Showing 5 changed files with 780 additions and 309 deletions.
Loading

0 comments on commit 15fecf8

Please sign in to comment.