tracing: create automated trace defines
This patch lowers the number of places a developer must modify to add
new tracepoints. The current method to add a new tracepoint
into an existing system is to write the trace point macro in the
trace header with one of the macros TRACE_EVENT, TRACE_FORMAT or
DECLARE_TRACE, then they must add the same named item into the C file
with the macro DEFINE_TRACE(name) and then add the trace point.
This change cuts out the needing to add the DEFINE_TRACE(name).
Every file that uses the tracepoint must still include the trace/<type>.h
file, but the one C file must also add a define before the including
of that file.
#define CREATE_TRACE_POINTS
#include <trace/mytrace.h>
This will cause the trace/mytrace.h file to also produce the C code
necessary to implement the trace point.
Note, if more than one trace/<type>.h is used to create the C code
it is best to list them all together.
#define CREATE_TRACE_POINTS
#include <trace/foo.h>
#include <trace/bar.h>
#include <trace/fido.h>
Thanks to Mathieu Desnoyers and Christoph Hellwig for coming up with
the cleaner solution of the define above the includes over my first
design to have the C code include a "special" header.
This patch converts sched, irq and lockdep and skb to use this new
method.
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Zhao Lei <zhaolei@cn.fujitsu.com>
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by:
Steven Rostedt <rostedt@goodmis.org>
Showing
- include/trace/define_trace.h 75 additions, 0 deletionsinclude/trace/define_trace.h
- include/trace/irq.h 4 additions, 1 deletioninclude/trace/irq.h
- include/trace/kmem.h 3 additions, 1 deletioninclude/trace/kmem.h
- include/trace/lockdep.h 3 additions, 0 deletionsinclude/trace/lockdep.h
- include/trace/sched.h 3 additions, 0 deletionsinclude/trace/sched.h
- include/trace/skb.h 3 additions, 0 deletionsinclude/trace/skb.h
- kernel/exit.c 0 additions, 4 deletionskernel/exit.c
- kernel/fork.c 0 additions, 2 deletionskernel/fork.c
- kernel/irq/handle.c 3 additions, 4 deletionskernel/irq/handle.c
- kernel/kthread.c 0 additions, 3 deletionskernel/kthread.c
- kernel/lockdep.c 3 additions, 9 deletionskernel/lockdep.c
- kernel/sched.c 3 additions, 7 deletionskernel/sched.c
- kernel/signal.c 0 additions, 2 deletionskernel/signal.c
- kernel/softirq.c 0 additions, 3 deletionskernel/softirq.c
- mm/util.c 3 additions, 8 deletionsmm/util.c
- net/core/net-traces.c 2 additions, 2 deletionsnet/core/net-traces.c
Loading
Please register or sign in to comment