aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2014-11-12 12:57:51 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-01-06 14:02:51 -0500
commit3ba4d0e09bf965297e97adf195e0ea246cfe5c74 (patch)
treeb191c78fd9d217e3d73743286bdc6ea9deb81847 /kernel/rcu/tree.c
parent5d0b024973027556b48a09bb36b55dc853ec7c6e (diff)
rcu: Note quiescent state when CPU goes offline
The rcu_cleanup_dead_cpu() function (called after a CPU has gone completely offline) has not reported a quiescent state because there was probably at least one synchronize_rcu() between the time the CPU went offline and the CPU_DEAD notifier, and this would have detected the CPU's offline state via quiescent-state forcing. However, the plan is for CPUs to take themselves offline, at which point it makes sense for them to report their own quiescent state. This commit makes this change in preparation for the new CPU-hotplug setup. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 5a0a4c969d38..24d3c67f7be7 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2297,7 +2297,7 @@ static void rcu_cleanup_dead_cpu(int cpu, struct rcu_state *rsp)
2297 rnp->qsmaskinit &= ~rdp->grpmask; 2297 rnp->qsmaskinit &= ~rdp->grpmask;
2298 if (rnp->qsmaskinit == 0 && !rcu_preempt_has_tasks(rnp)) 2298 if (rnp->qsmaskinit == 0 && !rcu_preempt_has_tasks(rnp))
2299 rcu_cleanup_dead_rnp(rnp); 2299 rcu_cleanup_dead_rnp(rnp);
2300 raw_spin_unlock_irqrestore(&rnp->lock, flags); 2300 rcu_report_qs_rnp(rdp->grpmask, rsp, rnp, flags); /* Rlses rnp->lock. */
2301 WARN_ONCE(rdp->qlen != 0 || rdp->nxtlist != NULL, 2301 WARN_ONCE(rdp->qlen != 0 || rdp->nxtlist != NULL,
2302 "rcu_cleanup_dead_cpu: Callbacks on offline CPU %d: qlen=%lu, nxtlist=%p\n", 2302 "rcu_cleanup_dead_cpu: Callbacks on offline CPU %d: qlen=%lu, nxtlist=%p\n",
2303 cpu, rdp->qlen, rdp->nxtlist); 2303 cpu, rdp->qlen, rdp->nxtlist);