diff options
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r-- | kernel/rcutree.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index dd4aea806f8..a86e46b6bc1 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c @@ -47,6 +47,7 @@ #include <linux/mutex.h> #include <linux/time.h> #include <linux/kernel_stat.h> +#include <trace/rcu.h> #include "rcutree.h" @@ -145,6 +146,10 @@ int rcu_cpu_stall_suppress __read_mostly = RCU_CPU_STALL_SUPPRESS_INIT; module_param(rcu_cpu_stall_suppress, int, 0644); #endif /* #ifdef CONFIG_RCU_CPU_STALL_DETECTOR */ +DEFINE_TRACE(rcu_tree_call_rcu); +DEFINE_TRACE(rcu_tree_call_rcu_bh); +DEFINE_TRACE(rcu_tree_callback); + static void force_quiescent_state(struct rcu_state *rsp, int relaxed); static int rcu_pending(int cpu); @@ -1143,6 +1148,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp) next = list->next; prefetch(next); debug_rcu_head_unqueue(list); + trace_rcu_tree_callback(list); list->func(list); list = next; if (++count >= rdp->blimit) @@ -1488,6 +1494,7 @@ EXPORT_SYMBOL_GPL(call_rcu_sched); */ void call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu)) { + trace_rcu_tree_call_rcu_bh(head, _RET_IP_); __call_rcu(head, func, &rcu_bh_state); } EXPORT_SYMBOL_GPL(call_rcu_bh); |