diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2009-02-02 17:29:21 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-03 08:03:52 -0500 |
commit | c4a8e8be2d43cc22b371e8e9c05c253409759d94 (patch) | |
tree | 274962a78a082a11550d07c6cc088817d6558db5 /kernel/trace/trace.h | |
parent | dc573f9b20c8710105ac35c08ed0fe1da5160ecd (diff) |
trace: better manage the context info for events
Impact: make trace_event more convenient for tracers
All tracers (for the moment) that use the struct trace_event want to
have the context info printed before their own output: the pid/cmdline,
cpu, and timestamp.
But some other tracers that want to implement their trace_event
callbacks will not necessary need these information or they may want to
format them as they want.
This patch adds a new default-enabled trace option:
TRACE_ITER_CONTEXT_INFO When disabled through:
echo nocontext-info > /debugfs/tracing/trace_options
The pid, cpu and timestamps headers will not be printed.
IE with the sched_switch tracer with context-info (default):
bash-2935 [001] 100.356561: 2935:120:S ==> [001] 0:140:R <idle>
<idle>-0 [000] 100.412804: 0:140:R + [000] 11:115:S events/0
<idle>-0 [000] 100.412816: 0:140:R ==> [000] 11:115:R events/0
events/0-11 [000] 100.412829: 11:115:S ==> [000] 0:140:R <idle>
Without context-info:
2935:120:S ==> [001] 0:140:R <idle>
0:140:R + [000] 11:115:S events/0
0:140:R ==> [000] 11:115:R events/0
11:115:S ==> [000] 0:140:R <idle>
A tracer can disable it at runtime by clearing the bit
TRACE_ITER_CONTEXT_INFO in trace_flags.
The print routines were renamed to trace_print_context and
trace_print_lat_context, so that they can be used by tracers if they
want to use them for one of the trace_event callbacks.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r-- | kernel/trace/trace.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index e603a291134b..f0c7a0f08cac 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
@@ -405,6 +405,10 @@ void init_tracer_sysprof_debugfs(struct dentry *d_tracer); | |||
405 | 405 | ||
406 | struct trace_entry *tracing_get_trace_entry(struct trace_array *tr, | 406 | struct trace_entry *tracing_get_trace_entry(struct trace_array *tr, |
407 | struct trace_array_cpu *data); | 407 | struct trace_array_cpu *data); |
408 | |||
409 | struct trace_entry *trace_find_next_entry(struct trace_iterator *iter, | ||
410 | int *ent_cpu, u64 *ent_ts); | ||
411 | |||
408 | void tracing_generic_entry_update(struct trace_entry *entry, | 412 | void tracing_generic_entry_update(struct trace_entry *entry, |
409 | unsigned long flags, | 413 | unsigned long flags, |
410 | int pc); | 414 | int pc); |
@@ -591,7 +595,8 @@ enum trace_iterator_flags { | |||
591 | TRACE_ITER_ANNOTATE = 0x2000, | 595 | TRACE_ITER_ANNOTATE = 0x2000, |
592 | TRACE_ITER_USERSTACKTRACE = 0x4000, | 596 | TRACE_ITER_USERSTACKTRACE = 0x4000, |
593 | TRACE_ITER_SYM_USEROBJ = 0x8000, | 597 | TRACE_ITER_SYM_USEROBJ = 0x8000, |
594 | TRACE_ITER_PRINTK_MSGONLY = 0x10000 | 598 | TRACE_ITER_PRINTK_MSGONLY = 0x10000, |
599 | TRACE_ITER_CONTEXT_INFO = 0x20000 /* Print pid/cpu/time */ | ||
595 | }; | 600 | }; |
596 | 601 | ||
597 | /* | 602 | /* |