]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
rcu: Make rcu_gp_kthread() check for early-boot activity
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 11 Apr 2018 23:41:20 +0000 (16:41 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 15 May 2018 17:29:24 +0000 (10:29 -0700)
commit5fe0a56298e674358ff2740a6288bf21509d895d
tree61a2926d9340b746ff535c954d193e0ae9c6448c
parentc91a8675b9cc697c725b6d97fcc7f157f4a989d0
rcu: Make rcu_gp_kthread() check for early-boot activity

The rcu_gp_kthread() function immediately sleeps waiting to be notified
of the need for a new grace period, which currently works because there
are a number of code sequences that will provide the needed wakeup later.
However, some of these code sequences need to acquire the root rcu_node
structure's ->lock, and contention on that lock has started manifesting.
This commit therefore makes rcu_gp_kthread() check for early-boot activity
when it starts up, omitting the initial sleep in that case.

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