Re: [PATCH] tracing/ftrace: better manage the context info for events

From: Frédéric Weisbecker
Date: Fri Jan 30 2009 - 07:56:05 EST


2009/1/30 Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx>:
> Em Fri, Jan 30, 2009 at 10:34:46AM -0200, Arnaldo Carvalho de Melo escreveu:
>> Em Fri, Jan 30, 2009 at 12:59:05AM -0800, Frederic Weisbecker escreveu:
>> > 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.
>> >
>> > Moreover, two callbacks have been added inside trace_event:
>> > _ context_info() which let a tracer override the format of the context info
>> > _ lat_context_info() which do the same with the latency_trace file
>> >
>> > If they are not defined, the usual way of printing the context info will be used.
>>
>> Please wait a bit, I'm trying to use it and the first thing I notice was
>> that I need the trace_iterator in the context callback, to get the
>> timestamp.
>
> Sorry, false alarm, the iterator is there, I was trying to build the
> whole binary trace record in the trace_event->bin(), but its not
> possible, so I'll do it in two function calls context + trace.
>
> - Arnaldo
>

Do you need the trace_iterator from one of your event print callback?
Such as in bin() ?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/