srcu: Exact tracking of srcu_data structures containing callbacks
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 18 Apr 2017 23:01:46 +0000 (16:01 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 26 Apr 2017 18:23:12 +0000 (11:23 -0700)
commitc7e88067c1ae89e7bcbed070fb2c4e30bc39b51f
tree4625614c62fe99fd72292cb9c0e60f2f2ff23b2c
parentd160a727c40e7175aa642137910a3fda46262fc8
srcu: Exact tracking of srcu_data structures containing callbacks

The current Tree SRCU implementation schedules a workqueue for every
srcu_data covered by a given leaf srcu_node structure having callbacks,
even if only one of those srcu_data structures actually contains
callbacks.  This is clearly inefficient for workloads that don't feature
callbacks everywhere all the time.  This commit therefore adds an array
of masks that are used by the leaf srcu_node structures to track exactly
which srcu_data structures contain callbacks.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Mike Galbraith <efault@gmx.de>
include/linux/srcutree.h
kernel/rcu/srcutree.c