rcu-tasks: Create per-CPU callback lists
authorPaul E. McKenney <paulmck@kernel.org>
Sat, 6 Nov 2021 04:52:00 +0000 (21:52 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 8 Dec 2021 00:26:09 +0000 (16:26 -0800)
commitcafafd67765b21334086b3fb8963ad9c5866c03d
treeee8c49be9b0ff91ab1d3ebeb6f10afc7144913cd
parentf5dbc594b5bac1fa694174032b8d3d0249945fd3
rcu-tasks: Create per-CPU callback lists

Currently, RCU Tasks Trace (as well as the other two flavors of RCU Tasks)
use a single global callback list.  This works well and is simple, but
expected changes in workload will cause this list to become a bottleneck.
This commit therefore creates per-CPU callback lists for the various
flavors of RCU Tasks, but continues queueing on a single list, namely
that of CPU 0.  Later commits will dynamically vary the number of lists
in use to accommodate dynamic changes in workload.

Reported-by: Martin Lau <kafai@fb.com>
Cc: Neeraj Upadhyay <neeraj.iitr10@gmail.com>
Tested-by: kernel test robot <beibei.si@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/tasks.h