aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_hw_branches.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2009-02-05 13:14:13 -0500
committerIngo Molnar <mingo@elte.hu>2009-02-05 19:01:41 -0500
commit51a763dd84253bab1d0a1e68e11a7753d1b702ca (patch)
tree2cc2cf0509db480391c585786285267e360c1338 /kernel/trace/trace_hw_branches.c
parent0a9877514c4fed10a70720293b37213dd172ee3e (diff)
tracing: Introduce trace_buffer_{lock_reserve,unlock_commit}
Impact: new API These new functions do what previously was being open coded, reducing the number of details ftrace plugin writers have to worry about. It also standardizes the handling of stacktrace, userstacktrace and other trace options we may introduce in the future. With this patch, for instance, the blk tracer (and some others already in the tree) can use the "userstacktrace" /d/tracing/trace_options facility. $ codiff /tmp/vmlinux.before /tmp/vmlinux.after linux-2.6-tip/kernel/trace/trace.c: trace_vprintk | -5 trace_graph_return | -22 trace_graph_entry | -26 trace_function | -45 __ftrace_trace_stack | -27 ftrace_trace_userstack | -29 tracing_sched_switch_trace | -66 tracing_stop | +1 trace_seq_to_user | -1 ftrace_trace_special | -63 ftrace_special | +1 tracing_sched_wakeup_trace | -70 tracing_reset_online_cpus | -1 13 functions changed, 2 bytes added, 355 bytes removed, diff: -353 linux-2.6-tip/block/blktrace.c: __blk_add_trace | -58 1 function changed, 58 bytes removed, diff: -58 linux-2.6-tip/kernel/trace/trace.c: trace_buffer_lock_reserve | +88 trace_buffer_unlock_commit | +86 2 functions changed, 174 bytes added, diff: +174 /tmp/vmlinux.after: 16 functions changed, 176 bytes added, 413 bytes removed, diff: -237 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Acked-by: Frédéric Weisbecker <fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace_hw_branches.c')
-rw-r--r--kernel/trace/trace_hw_branches.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/trace/trace_hw_branches.c b/kernel/trace/trace_hw_branches.c
index e720c001db2b..2aa1c9f4c7d8 100644
--- a/kernel/trace/trace_hw_branches.c
+++ b/kernel/trace/trace_hw_branches.c
@@ -189,16 +189,15 @@ void trace_hw_branch(u64 from, u64 to)
189 if (atomic_inc_return(&tr->data[cpu]->disabled) != 1) 189 if (atomic_inc_return(&tr->data[cpu]->disabled) != 1)
190 goto out; 190 goto out;
191 191
192 event = ring_buffer_lock_reserve(tr->buffer, sizeof(*entry)); 192 event = trace_buffer_lock_reserve(tr, TRACE_HW_BRANCHES,
193 sizeof(*entry), 0, 0);
193 if (!event) 194 if (!event)
194 goto out; 195 goto out;
195 entry = ring_buffer_event_data(event); 196 entry = ring_buffer_event_data(event);
196 tracing_generic_entry_update(&entry->ent, 0, from);
197 entry->ent.type = TRACE_HW_BRANCHES;
198 entry->ent.cpu = cpu; 197 entry->ent.cpu = cpu;
199 entry->from = from; 198 entry->from = from;
200 entry->to = to; 199 entry->to = to;
201 ring_buffer_unlock_commit(tr->buffer, event); 200 trace_buffer_unlock_commit(tr, event, 0, 0);
202 201
203 out: 202 out:
204 atomic_dec(&tr->data[cpu]->disabled); 203 atomic_dec(&tr->data[cpu]->disabled);