]> git.karo-electronics.de Git - linux-beck.git/commit
rcu: Create a synchronize_rcu_mult()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 10 Jun 2015 19:53:06 +0000 (12:53 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 22 Jul 2015 22:27:29 +0000 (15:27 -0700)
commitec90a194ae2cb8b8e9fe4f6f70dd3d4dc0269b4b
tree1e2bb8b96f070c665fed9d6785b5aaffbe25f655
parentbc17ea1092c48227334a311a130c1a41966333fe
rcu: Create a synchronize_rcu_mult()

There have been several requests for a primitive that waits for
grace periods for several RCU flavors concurrently, so this
commit creates it.  This is a variadic macro, and you pass in
the call_rcu() functions of the flavors of RCU that you wish to
wait for.

Note that you cannot pass in call_srcu() for two reasons: (1) This
would result in a type mismatch and (2) You need to specify which
srcu_struct you want to use.  Handle this by creating a wrapper
function for your SRCU domain, for example:

void call_srcu_mine(struct rcu_head *head, rcu_callback_t func)
{
call_srcu(&ss_mine, head, func);
}

You can then do something like this:

synchronize_rcu_mult(call_srcu_mine, call_rcu, call_rcu_sched);

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h
include/linux/types.h
kernel/rcu/update.c