diff options
| author | Frederic Weisbecker <fweisbec@gmail.com> | 2009-02-02 20:29:21 -0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-02-03 14:03:52 +0100 | 
| commit | c4a8e8be2d43cc22b371e8e9c05c253409759d94 (patch) | |
| tree | 274962a78a082a11550d07c6cc088817d6558db5 /kernel/trace/trace_output.h | |
| parent | dc573f9b20c8710105ac35c08ed0fe1da5160ecd (diff) | |
| download | olio-linux-3.10-c4a8e8be2d43cc22b371e8e9c05c253409759d94.tar.xz olio-linux-3.10-c4a8e8be2d43cc22b371e8e9c05c253409759d94.zip  | |
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_output.h')
| -rw-r--r-- | kernel/trace/trace_output.h | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.h b/kernel/trace/trace_output.h index 1cbab5e3dc9..ec2ed90f10f 100644 --- a/kernel/trace/trace_output.h +++ b/kernel/trace/trace_output.h @@ -33,6 +33,9 @@ int seq_print_userip_objs(const struct userstack_entry *entry,  int seq_print_user_ip(struct trace_seq *s, struct mm_struct *mm,  		      unsigned long ip, unsigned long sym_flags); +int trace_print_context(struct trace_iterator *iter); +int trace_print_lat_context(struct trace_iterator *iter); +  struct trace_event *ftrace_find_event(int type);  int register_ftrace_event(struct trace_event *event);  int unregister_ftrace_event(struct trace_event *event);  |