lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ