• Paul E. McKenney's avatar
    rcu: Create a synchronize_rcu_mult() · ec90a194
    Paul E. McKenney authored
    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: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    ec90a194
update.c 27.5 KB