aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-05-07 15:07:48 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-07-12 18:39:07 -0400
commite05121ba5b81e2f85349f038642410578457f6db (patch)
treea92f11a94cf28b98673e40182020435730cea6fc /kernel/rcu/tree.c
parent17a8212b8de21ce1b9a91fb75c8a6fb337685b9a (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.c9
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);