[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090224193344.638329210@goodmis.org>
Date: Tue, 24 Feb 2009 14:33:44 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: linux-kernel@...r.kernel.org
Cc: Ingo Molnar <mingo@...e.hu>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Peter Zijlstra <peterz@...radead.org>,
Frederic Weisbecker <fweisbec@...il.com>,
Theodore Tso <tytso@....edu>,
Arjan van de Ven <arjan@...radead.org>,
Pekka Paalanen <pq@....fi>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Jason Baron <jbaron@...hat.com>,
Martin Bligh <mbligh@...gle.com>,
Mathieu Desnoyers <compudj@...stal.dyndns.org>,
"Frank Ch. Eigler" <fche@...hat.com>,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
Jens Axboe <jens.axboe@...cle.com>,
Masami Hiramatsu <mhiramat@...hat.com>
Subject: [PATCH 0/4][RFC] event tracer
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(-)
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists