mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
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>
This commit is contained in:
parent
5d0b024973
commit
3ba4d0e09b
@ -2297,7 +2297,7 @@ static void rcu_cleanup_dead_cpu(int cpu, struct rcu_state *rsp)
|
|||||||
rnp->qsmaskinit &= ~rdp->grpmask;
|
rnp->qsmaskinit &= ~rdp->grpmask;
|
||||||
if (rnp->qsmaskinit == 0 && !rcu_preempt_has_tasks(rnp))
|
if (rnp->qsmaskinit == 0 && !rcu_preempt_has_tasks(rnp))
|
||||||
rcu_cleanup_dead_rnp(rnp);
|
rcu_cleanup_dead_rnp(rnp);
|
||||||
raw_spin_unlock_irqrestore(&rnp->lock, flags);
|
rcu_report_qs_rnp(rdp->grpmask, rsp, rnp, flags); /* Rlses rnp->lock. */
|
||||||
WARN_ONCE(rdp->qlen != 0 || rdp->nxtlist != NULL,
|
WARN_ONCE(rdp->qlen != 0 || rdp->nxtlist != NULL,
|
||||||
"rcu_cleanup_dead_cpu: Callbacks on offline CPU %d: qlen=%lu, nxtlist=%p\n",
|
"rcu_cleanup_dead_cpu: Callbacks on offline CPU %d: qlen=%lu, nxtlist=%p\n",
|
||||||
cpu, rdp->qlen, rdp->nxtlist);
|
cpu, rdp->qlen, rdp->nxtlist);
|
||||||
|
Loading…
Reference in New Issue
Block a user