diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2010-10-01 00:26:52 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-11-30 01:01:55 -0500 |
commit | 9e571a82f0cb205a65a0ea41657f19f22b7fabb8 (patch) | |
tree | 64a83a06e18d0fd82af91560a2bf0947e0e3d071 /kernel/rcutiny.c | |
parent | 24278d148316d2180be6df40e06db013d8b232b8 (diff) |
rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU
Add tracing for the tiny RCU implementations, including statistics on
boosting in the case of TINY_PREEMPT_RCU and RCU_BOOST.
Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcutiny.c')
-rw-r--r-- | kernel/rcutiny.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c index 93d166582cbb..034493724749 100644 --- a/kernel/rcutiny.c +++ b/kernel/rcutiny.c | |||
@@ -144,6 +144,7 @@ static void rcu_process_callbacks(struct rcu_ctrlblk *rcp) | |||
144 | { | 144 | { |
145 | struct rcu_head *next, *list; | 145 | struct rcu_head *next, *list; |
146 | unsigned long flags; | 146 | unsigned long flags; |
147 | RCU_TRACE(int cb_count = 0); | ||
147 | 148 | ||
148 | /* If no RCU callbacks ready to invoke, just return. */ | 149 | /* If no RCU callbacks ready to invoke, just return. */ |
149 | if (&rcp->rcucblist == rcp->donetail) | 150 | if (&rcp->rcucblist == rcp->donetail) |
@@ -169,7 +170,9 @@ static void rcu_process_callbacks(struct rcu_ctrlblk *rcp) | |||
169 | list->func(list); | 170 | list->func(list); |
170 | local_bh_enable(); | 171 | local_bh_enable(); |
171 | list = next; | 172 | list = next; |
173 | RCU_TRACE(cb_count++); | ||
172 | } | 174 | } |
175 | RCU_TRACE(rcu_trace_sub_qlen(rcp, cb_count)); | ||
173 | } | 176 | } |
174 | 177 | ||
175 | /* | 178 | /* |
@@ -252,6 +255,7 @@ static void __call_rcu(struct rcu_head *head, | |||
252 | local_irq_save(flags); | 255 | local_irq_save(flags); |
253 | *rcp->curtail = head; | 256 | *rcp->curtail = head; |
254 | rcp->curtail = &head->next; | 257 | rcp->curtail = &head->next; |
258 | RCU_TRACE(rcp->qlen++); | ||
255 | local_irq_restore(flags); | 259 | local_irq_restore(flags); |
256 | } | 260 | } |
257 | 261 | ||