rcu: Add tracing data to support queueing models
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 7 Sep 2010 21:23:09 +0000 (14:23 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 23 Sep 2010 16:16:53 +0000 (09:16 -0700)
commit269dcc1c2ec25864308ee03a3fa26ea819d9f5d0
tree1c81ee6a9151ab1580628f6e9f85c469ceccb5c0
parent0ddea0ead2ced99eaaaddff2beb755381e5c89f8
rcu: Add tracing data to support queueing models

The current tracing data is not sufficient to deduce the average time
that a callback spends waiting for a grace period to end.  Add three
per-CPU counters recording the number of callbacks invoked (ci), the
number of callbacks orphaned (co), and the number of callbacks adopted
(ca).  Given the existing callback queue length (ql), the average wait
time in absence of CPU hotplug operations is ql/ci.  The units of wait
time will be in terms of the duration over which ci was measured.

In the presence of CPU hotplug operations, there is room for argument,
but ql/(ci-co+ca) won't steer you too far wrong.

Also fixes a typo called out by Lucas De Marchi <lucas.de.marchi@gmail.com>.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Documentation/RCU/trace.txt
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_trace.c