diff options
| author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-05-07 15:07:48 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2018-07-12 18:39:07 -0400 |
| commit | e05121ba5b81e2f85349f038642410578457f6db (patch) | |
| tree | a92f11a94cf28b98673e40182020435730cea6fc /kernel/rcu/tree.c | |
| parent | 17a8212b8de21ce1b9a91fb75c8a6fb337685b9a (diff) | |
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>
Diffstat (limited to 'kernel/rcu/tree.c')
| -rw-r--r-- | kernel/rcu/tree.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 770f0df54015..5f1a11f1f7bc 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
| @@ -1188,14 +1188,6 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) | |||
| 1188 | smp_store_release(ruqp, true); | 1188 | smp_store_release(ruqp, true); |
| 1189 | } | 1189 | } |
| 1190 | 1190 | ||
| 1191 | /* Check for the CPU being offline. */ | ||
| 1192 | if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) { | ||
| 1193 | trace_rcu_fqs(rdp->rsp->name, rdp->gp_seq, rdp->cpu, TPS("ofl")); | ||
| 1194 | rdp->offline_fqs++; | ||
| 1195 | rcu_gpnum_ovf(rnp, rdp); | ||
| 1196 | return 1; | ||
| 1197 | } | ||
| 1198 | |||
| 1199 | /* | 1191 | /* |
| 1200 | * A CPU running for an extended time within the kernel can | 1192 | * A CPU running for an extended time within the kernel can |
| 1201 | * delay RCU grace periods. When the CPU is in NO_HZ_FULL mode, | 1193 | * delay RCU grace periods. When the CPU is in NO_HZ_FULL mode, |
| @@ -3718,6 +3710,7 @@ void rcu_cpu_starting(unsigned int cpu) | |||
| 3718 | nbits = bitmap_weight(&oldmask, BITS_PER_LONG); | 3710 | nbits = bitmap_weight(&oldmask, BITS_PER_LONG); |
| 3719 | /* Allow lockless access for expedited grace periods. */ | 3711 | /* Allow lockless access for expedited grace periods. */ |
| 3720 | smp_store_release(&rsp->ncpus, rsp->ncpus + nbits); /* ^^^ */ | 3712 | smp_store_release(&rsp->ncpus, rsp->ncpus + nbits); /* ^^^ */ |
| 3713 | rcu_gpnum_ovf(rnp, rdp); /* Offline-induced counter wrap? */ | ||
| 3721 | if (rnp->qsmask & mask) { /* RCU waiting on incoming CPU? */ | 3714 | if (rnp->qsmask & mask) { /* RCU waiting on incoming CPU? */ |
| 3722 | /* Report QS -after- changing ->qsmaskinitnext! */ | 3715 | /* Report QS -after- changing ->qsmaskinitnext! */ |
| 3723 | rcu_report_qs_rnp(mask, rsp, rnp, rnp->gp_seq, flags); | 3716 | rcu_report_qs_rnp(mask, rsp, rnp, rnp->gp_seq, flags); |
