srcu: Make early-boot call_srcu() reuse workqueue lists
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 14 Aug 2018 21:41:49 +0000 (14:41 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 30 Aug 2018 23:10:49 +0000 (16:10 -0700)
commit4e6ea4ef56f9425cd239ffdb6be45b3aeeb347fd
tree81702573011d79ef39d2934e020372976256b9de
parent55cda2290bf9d8510fbe7c1939a36680476c69c4
srcu: Make early-boot call_srcu() reuse workqueue lists

Allocating a list_head structure that is almost never used, and, when
used, is used only during early boot (rcu_init() and earlier), is a bit
wasteful.  This commit therefore eliminates that list_head in favor of
the one in the work_struct structure.  This is safe because the work_struct
structure cannot be used until after rcu_init() returns.

Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Tested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
include/linux/srcutiny.h
include/linux/srcutree.h
kernel/rcu/srcutiny.c
kernel/rcu/srcutree.c