mirror of https://gitee.com/openkylin/linux.git
rcu: Remove CPU-hotplug failsafe from force-quiescent-state code path
Now that quiescent states for newly offlined CPUs are reported either when that CPU goes offline or at the end of grace-period initialization, the CPU-hotplug failsafe in the force-quiescent-state code path is no longer needed. This commit therefore removes this failsafe. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
17a8212b8d
commit
e05121ba5b
|
@ -391,11 +391,11 @@ TRACE_EVENT(rcu_quiescent_state_report,
|
|||
|
||||
/*
|
||||
* Tracepoint for quiescent states detected by force_quiescent_state().
|
||||
* These trace events include the type of RCU, the grace-period number that
|
||||
* was blocked by the CPU, the CPU itself, and the type of quiescent state,
|
||||
* which can be "dti" for dyntick-idle mode, "ofl" for CPU offline, "kick"
|
||||
* when kicking a CPU that has been in dyntick-idle mode for too long, or
|
||||
* "rqc" if the CPU got a quiescent state via its rcu_qs_ctr.
|
||||
* These trace events include the type of RCU, the grace-period number
|
||||
* that was blocked by the CPU, the CPU itself, and the type of quiescent
|
||||
* state, which can be "dti" for dyntick-idle mode, "kick" when kicking
|
||||
* a CPU that has been in dyntick-idle mode for too long, or "rqc" if the
|
||||
* CPU got a quiescent state via its rcu_qs_ctr.
|
||||
*/
|
||||
TRACE_EVENT(rcu_fqs,
|
||||
|
||||
|
|
|
@ -1188,14 +1188,6 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
|
|||
smp_store_release(ruqp, true);
|
||||
}
|
||||
|
||||
/* Check for the CPU being offline. */
|
||||
if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) {
|
||||
trace_rcu_fqs(rdp->rsp->name, rdp->gp_seq, rdp->cpu, TPS("ofl"));
|
||||
rdp->offline_fqs++;
|
||||
rcu_gpnum_ovf(rnp, rdp);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* A CPU running for an extended time within the kernel can
|
||||
* delay RCU grace periods. When the CPU is in NO_HZ_FULL mode,
|
||||
|
@ -3718,6 +3710,7 @@ void rcu_cpu_starting(unsigned int cpu)
|
|||
nbits = bitmap_weight(&oldmask, BITS_PER_LONG);
|
||||
/* Allow lockless access for expedited grace periods. */
|
||||
smp_store_release(&rsp->ncpus, rsp->ncpus + nbits); /* ^^^ */
|
||||
rcu_gpnum_ovf(rnp, rdp); /* Offline-induced counter wrap? */
|
||||
if (rnp->qsmask & mask) { /* RCU waiting on incoming CPU? */
|
||||
/* Report QS -after- changing ->qsmaskinitnext! */
|
||||
rcu_report_qs_rnp(mask, rsp, rnp, rnp->gp_seq, flags);
|
||||
|
|
|
@ -217,7 +217,6 @@ struct rcu_data {
|
|||
|
||||
/* 4) reasons this CPU needed to be kicked by force_quiescent_state */
|
||||
unsigned long dynticks_fqs; /* Kicked due to dynticks idle. */
|
||||
unsigned long offline_fqs; /* Kicked due to being offline. */
|
||||
unsigned long cond_resched_completed;
|
||||
/* Grace period that needs help */
|
||||
/* from cond_resched(). */
|
||||
|
|
Loading…
Reference in New Issue