]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
rcu: Parallelize expedited grace-period initialization
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 2 Feb 2018 06:05:38 +0000 (22:05 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 15 May 2018 17:25:44 +0000 (10:25 -0700)
commit25f3d7effab632eb10d145f1a5aebf6515a04b98
tree8f088c805ed43c898543f1e74d21e808605143fc
parent60cc43fc888428bb2f18f08997432d426a243338
rcu: Parallelize expedited grace-period initialization

The latency of RCU expedited grace periods grows with increasing numbers
of CPUs, eventually failing to be all that expedited.  Much of the growth
in latency is in the initialization phase, so this commit uses workqueues
to carry out this initialization concurrently on a rcu_node-by-rcu_node
basis.

This change makes use of a new rcu_par_gp_wq because flushing a work
item from another work item running from the same workqueue can result
in deadlock.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Nicholas Piggin <npiggin@gmail.com>
kernel/rcu/rcu.h
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_exp.h