public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4][RFC] event tracer
@ 2009-02-24 19:33 Steven Rostedt
  2009-02-24 19:33 ` [PATCH 1/4][RFC] tracing: add event trace infrastructure Steven Rostedt
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Steven Rostedt @ 2009-02-24 19:33 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Andrew Morton, Thomas Gleixner, Peter Zijlstra,
	Frederic Weisbecker, Theodore Tso, Arjan van de Ven,
	Pekka Paalanen, Arnaldo Carvalho de Melo, Jason Baron,
	Martin Bligh, Mathieu Desnoyers, Frank Ch. Eigler,
	KOSAKI Motohiro, Jens Axboe, Masami Hiramatsu


This is still RFC, do not pull.

This patch set gives the ability to add a format string and args to
a trace point declaration. Then it gives a tracer an opportunity to
override the header macro and use the default trace format to trace
the object.

For example (and used in this patch series), the sched tracepoint
declarations are moved from include/trace/sched.h to
include/trace/sched_event_types.h, and instead of using the macro
DECLARE_TRACE we use DECLARE_TRACE_FMT. The first three arguments
are the same, but it adds 2 more arguments. A printf format and
arguments.

The new trace/sched.h file contains:

  #include <linux/sched.h>
  #include <linux/tracepoint.h>

  #include <trace/sched_event_types.h>

The sched_event_types.h file has:

 DECLARE_TRACE_FMT(sched_kthread_stop,
        TPPROTO(struct task_struct *t),
                  TPARGS(t),
                   "task %s:%d", TPARGS(t->comm, t->pid));

The tracepoint.h defines DECLARE_TRACE_FMT as:

 #define DECLARE_TRACE_FMT(name, proto, args, fmt, fmt_args) \
        DECLARE_TRACE(name, TPPROTO(proto), TPARGS(args))


But in kernel/trace/events.c we have:

 /* trace/<type>.h here */
 #include <trace/sched.h>

 #include "trace_events.h"

 /* trace/<type>_event_types.h here */
 #include <trace/sched_event_types.h>

The trace_events.h redefines the DECLARE_TRACE_FMT and makes a hook
for to automate adding event points.

To add event points, convert to the DECLARE_TRACE_FMT, add your default
printf format, and then add to events.c, the <type>.h and <type>_event_types.h
as described. Then your trace points will appear in the event tracer.

Next I'll convert the rest of the tracepoints that are already defined
to this format.


The following patches are in:

  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git

    branch: rfc/event_tracer


Steven Rostedt (4):
      tracing: add event trace infrastructure
      tracing: add DECLARE_TRACE_FMT to tracepoint.h
      tracing: add schedule events to event trace
      tracing: make event directory structure

----
 include/asm-generic/vmlinux.lds.h |   11 +-
 include/linux/tracepoint.h        |    3 +
 include/trace/sched.h             |   49 +-----
 include/trace/sched_event_types.h |   74 +++++++
 kernel/trace/Kconfig              |    9 +
 kernel/trace/Makefile             |    2 +
 kernel/trace/events.c             |   13 ++
 kernel/trace/trace_events.c       |  407 +++++++++++++++++++++++++++++++++++++
 kernel/trace/trace_events.h       |   52 +++++
 9 files changed, 571 insertions(+), 49 deletions(-)
-- 

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2009-02-25 14:22 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-24 19:33 [PATCH 0/4][RFC] event tracer Steven Rostedt
2009-02-24 19:33 ` [PATCH 1/4][RFC] tracing: add event trace infrastructure Steven Rostedt
2009-02-24 19:42   ` Andrew Morton
2009-02-24 19:46     ` Ingo Molnar
2009-02-24 22:11       ` Steven Rostedt
2009-02-24 19:33 ` [PATCH 2/4][RFC] tracing: add DECLARE_TRACE_FMT to tracepoint.h Steven Rostedt
2009-02-24 19:33 ` [PATCH 3/4][RFC] tracing: add schedule events to event trace Steven Rostedt
2009-02-24 19:33 ` [PATCH 4/4][RFC] tracing: make event directory structure Steven Rostedt
2009-02-24 19:39 ` [PATCH 0/4][RFC] event tracer Ingo Molnar
2009-02-24 19:42 ` Peter Zijlstra
2009-02-24 22:10   ` Steven Rostedt
2009-02-24 22:25     ` Masami Hiramatsu
2009-02-24 22:31       ` Steven Rostedt
2009-02-25  1:01         ` Mathieu Desnoyers
2009-02-25  1:15           ` Steven Rostedt
2009-02-25  1:46             ` Mathieu Desnoyers
2009-02-25  0:59 ` Mathieu Desnoyers
2009-02-25  2:10 ` Frank Ch. Eigler
2009-02-25 14:19   ` Jason Baron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox