jrcu: separate barrier and sync stats
PATCH 16/24 jrcu: separate barrier and sync stats
jrcu: seperate barrier/sync stats.
Now that barriers are distinct from syncs, give
each their own stats.
Signed-off-by Joe Korty <[email protected]>
kernel/jrcu.c +5 -1
@@ -122,6 +122,7 @@ static struct rcu_stats {unsigned npasses;/* #passes made */ unsigned nbatches;/* #end-of-batches (eobs) seen */ atomic_t nbarriers;/* #rcu barriers processed */ +atomic_t nsyncs;/* #rcu syncs processed */ u64 ninvoked;/* #invoked (ie, finished) callbacks */ atomic_t nleft;/* #callbacks left (ie, not yet invoked) */ unsigned nforced;/* #forced eobs (should be zero) */
@@ -215,7 +216,7 @@ void synchronize_sched(void)init_completion (&rcu.completion);call_rcu (&rcu.head, wakeme_after_rcu);wait_for_completion (&rcu.completion); -atomic_inc (&rcu_stats.nbarriers); +atomic_inc (&rcu_stats.nsyncs); }EXPORT_SYMBOL_GPL (synchronize_sched);
@@ -224,6 +225,7 @@ void rcu_barrier(void) {synchronize_sched ();synchronize_sched (); +atomic_inc (&rcu_stats.nbarriers); }EXPORT_SYMBOL_GPL (rcu_barrier);
@@ -604,6 +606,8 @@ static int rcu_debugfs_show(struct seq_fseq_printf (m,"\n" );seq_printf (m,"%14u: #barriers\n" ,atomic_read (&rcu_stats.nbarriers)); +seq_printf (m,"%14u: #syncs\n" , +atomic_read (&rcu_stats.nsyncs));seq_printf (m,"%14llu: #callbacks invoked\n" , rcu_stats.ninvoked); seq_printf(m, "%14u: #callbacks left to invoke\n",