aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-01-10 15:36:00 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2018-02-20 19:10:28 -0500
commit01c495f72a3b5a210e5689deba1ef33c82e8aa30 (patch)
tree7ae45dbae3388c683fefa52617ed782eb25c3c4b /kernel/rcu/tree.c
parent62df63e048daf4e29373bbbaae3751e5af5d9502 (diff)
rcu: Remove obsolete __rcu_pending() statistics for debugfs
The debugfs interface displayed statistics on RCU-pending checks but this interface has since been removed. This commit therefore removes the no-longer-used rcu_data structure's ->n_rcu_pending, ->n_rp_core_needs_qs, ->n_rp_report_qs, ->n_rp_cb_ready, ->n_rp_cpu_needs_gp, ->n_rp_gp_completed, ->n_rp_gp_started, ->n_rp_nocb_defer_wakeup, and ->n_rp_need_nothing fields along with their updates. If this information proves necessary in the future, the corresponding event traces will be added. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c31
1 files changed, 6 insertions, 25 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 8e0711954bbf..99d59be761d1 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3354,8 +3354,6 @@ static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
3354{ 3354{
3355 struct rcu_node *rnp = rdp->mynode; 3355 struct rcu_node *rnp = rdp->mynode;
3356 3356
3357 rdp->n_rcu_pending++;
3358
3359 /* Check for CPU stalls, if enabled. */ 3357 /* Check for CPU stalls, if enabled. */
3360 check_cpu_stall(rsp, rdp); 3358 check_cpu_stall(rsp, rdp);
3361 3359
@@ -3364,48 +3362,31 @@ static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
3364 return 0; 3362 return 0;
3365 3363
3366 /* Is the RCU core waiting for a quiescent state from this CPU? */ 3364 /* Is the RCU core waiting for a quiescent state from this CPU? */
3367 if (rcu_scheduler_fully_active && 3365 if (rdp->core_needs_qs && !rdp->cpu_no_qs.b.norm)
3368 rdp->core_needs_qs && rdp->cpu_no_qs.b.norm &&
3369 rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_dynticks.rcu_qs_ctr)) {
3370 rdp->n_rp_core_needs_qs++;
3371 } else if (rdp->core_needs_qs && !rdp->cpu_no_qs.b.norm) {
3372 rdp->n_rp_report_qs++;
3373 return 1; 3366 return 1;
3374 }
3375 3367
3376 /* Does this CPU have callbacks ready to invoke? */ 3368 /* Does this CPU have callbacks ready to invoke? */
3377 if (rcu_segcblist_ready_cbs(&rdp->cblist)) { 3369 if (rcu_segcblist_ready_cbs(&rdp->cblist))
3378 rdp->n_rp_cb_ready++;
3379 return 1; 3370 return 1;
3380 }
3381 3371
3382 /* Has RCU gone idle with this CPU needing another grace period? */ 3372 /* Has RCU gone idle with this CPU needing another grace period? */
3383 if (cpu_needs_another_gp(rsp, rdp)) { 3373 if (cpu_needs_another_gp(rsp, rdp))
3384 rdp->n_rp_cpu_needs_gp++;
3385 return 1; 3374 return 1;
3386 }
3387 3375
3388 /* Has another RCU grace period completed? */ 3376 /* Has another RCU grace period completed? */
3389 if (READ_ONCE(rnp->completed) != rdp->completed) { /* outside lock */ 3377 if (READ_ONCE(rnp->completed) != rdp->completed) /* outside lock */
3390 rdp->n_rp_gp_completed++;
3391 return 1; 3378 return 1;
3392 }
3393 3379
3394 /* Has a new RCU grace period started? */ 3380 /* Has a new RCU grace period started? */
3395 if (READ_ONCE(rnp->gpnum) != rdp->gpnum || 3381 if (READ_ONCE(rnp->gpnum) != rdp->gpnum ||
3396 unlikely(READ_ONCE(rdp->gpwrap))) { /* outside lock */ 3382 unlikely(READ_ONCE(rdp->gpwrap))) /* outside lock */
3397 rdp->n_rp_gp_started++;
3398 return 1; 3383 return 1;
3399 }
3400 3384
3401 /* Does this CPU need a deferred NOCB wakeup? */ 3385 /* Does this CPU need a deferred NOCB wakeup? */
3402 if (rcu_nocb_need_deferred_wakeup(rdp)) { 3386 if (rcu_nocb_need_deferred_wakeup(rdp))
3403 rdp->n_rp_nocb_defer_wakeup++;
3404 return 1; 3387 return 1;
3405 }
3406 3388
3407 /* nothing to do */ 3389 /* nothing to do */
3408 rdp->n_rp_need_nothing++;
3409 return 0; 3390 return 0;
3410} 3391}
3411 3392