summaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPranith Kumar <bobby.prani@gmail.com>2014-08-27 16:43:40 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-08-28 05:59:59 -0700
commit11ed7f934cb807f26da09547b5946c2e534d1dac (patch)
treeb67d674bbc9a0d97547c31b3735c99667a7184c1 /kernel/rcu/tree.c
parent52addcf9d6669fa439387610bc65c92fa0980cef (diff)
downloadblackbird-op-linux-11ed7f934cb807f26da09547b5946c2e534d1dac.tar.gz
blackbird-op-linux-11ed7f934cb807f26da09547b5946c2e534d1dac.zip
rcu: Make nocb leader kthreads process pending callbacks after spawning
The nocb callbacks generated before the nocb kthreads are spawned are enqueued in the nocb queue for later processing. Commit fbce7497ee5af ("rcu: Parallelize and economize NOCB kthread wakeups") introduced nocb leader kthreads which checked the nocb_leader_wake flag to see if there were any such pending callbacks. A case was reported in which newly spawned leader kthreads were not processing the pending callbacks as this flag was not set, which led to a boot hang. The following commit ensures that the newly spawned nocb kthreads process the pending callbacks by allowing the kthreads to run immediately after spawning instead of waiting. This is done by inverting the logic of nocb_leader_wake tests to nocb_leader_sleep which allows us to use the default initialization of this flag to 0 to let the kthreads run. Reported-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com> Link: http://www.spinics.net/lists/kernel/msg1802899.html [ paulmck: Backported to v3.17-rc2. ] Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Amit Shah <amit.shah@redhat.com>
Diffstat (limited to 'kernel/rcu/tree.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud