-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tracing: consolidate trace and trace_event headers
Impact: clean up Neil Horman (et. al.) criticized the way the trace events were broken up into two files. The reason for that was that ftrace needed to separate out the declarations from where the #include <linux/tracepoint.h> was used. It then dawned on me that the tracepoint.h header only needs to define the TRACE_EVENT macro if it is not already defined. The solution is simply to test if TRACE_EVENT is defined, and if it is not then the linux/tracepoint.h header can define it. This change consolidates all the <traces>.h and <traces>_event_types.h into the <traces>.h file. Reported-by: Neil Horman <nhorman@tuxdriver.com> Reported-by: Theodore Tso <tytso@mit.edu> Reported-by: Jiaying Zhang <jiayingz@google.com> Cc: Zhaolei <zhaolei@cn.fujitsu.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Jason Baron <jbaron@redhat.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
- Loading branch information
Steven Rostedt
authored and
Steven Rostedt
committed
Apr 14, 2009
1 parent
0a19e53
commit ea20d92
Showing
15 changed files
with
663 additions
and
518 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,54 @@ | ||
#ifndef _TRACE_IRQ_H | ||
#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_IRQ_H | ||
|
||
#include <linux/interrupt.h> | ||
#include <linux/tracepoint.h> | ||
#include <linux/interrupt.h> | ||
|
||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM irq | ||
|
||
/* | ||
* Tracepoint for entry of interrupt handler: | ||
*/ | ||
TRACE_FORMAT(irq_handler_entry, | ||
TP_PROTO(int irq, struct irqaction *action), | ||
TP_ARGS(irq, action), | ||
TP_FMT("irq=%d handler=%s", irq, action->name) | ||
); | ||
|
||
/* | ||
* Tracepoint for return of an interrupt handler: | ||
*/ | ||
TRACE_EVENT(irq_handler_exit, | ||
|
||
TP_PROTO(int irq, struct irqaction *action, int ret), | ||
|
||
TP_ARGS(irq, action, ret), | ||
|
||
TP_STRUCT__entry( | ||
__field( int, irq ) | ||
__field( int, ret ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->irq = irq; | ||
__entry->ret = ret; | ||
), | ||
|
||
TP_printk("irq=%d return=%s", | ||
__entry->irq, __entry->ret ? "handled" : "unhandled") | ||
); | ||
|
||
TRACE_FORMAT(softirq_entry, | ||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | ||
TP_ARGS(h, vec), | ||
TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | ||
); | ||
|
||
#include <trace/irq_event_types.h> | ||
TRACE_FORMAT(softirq_exit, | ||
TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | ||
TP_ARGS(h, vec), | ||
TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | ||
); | ||
|
||
#endif |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,192 @@ | ||
#ifndef _TRACE_KMEM_H | ||
#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_KMEM_H | ||
|
||
#include <linux/types.h> | ||
#include <linux/tracepoint.h> | ||
|
||
#include <trace/kmem_event_types.h> | ||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM kmem | ||
|
||
#endif /* _TRACE_KMEM_H */ | ||
TRACE_EVENT(kmalloc, | ||
|
||
TP_PROTO(unsigned long call_site, | ||
const void *ptr, | ||
size_t bytes_req, | ||
size_t bytes_alloc, | ||
gfp_t gfp_flags), | ||
|
||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
__field( size_t, bytes_req ) | ||
__field( size_t, bytes_alloc ) | ||
__field( gfp_t, gfp_flags ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
__entry->bytes_req = bytes_req; | ||
__entry->bytes_alloc = bytes_alloc; | ||
__entry->gfp_flags = gfp_flags; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%08x", | ||
__entry->call_site, | ||
__entry->ptr, | ||
__entry->bytes_req, | ||
__entry->bytes_alloc, | ||
__entry->gfp_flags) | ||
); | ||
|
||
TRACE_EVENT(kmem_cache_alloc, | ||
|
||
TP_PROTO(unsigned long call_site, | ||
const void *ptr, | ||
size_t bytes_req, | ||
size_t bytes_alloc, | ||
gfp_t gfp_flags), | ||
|
||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
__field( size_t, bytes_req ) | ||
__field( size_t, bytes_alloc ) | ||
__field( gfp_t, gfp_flags ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
__entry->bytes_req = bytes_req; | ||
__entry->bytes_alloc = bytes_alloc; | ||
__entry->gfp_flags = gfp_flags; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%08x", | ||
__entry->call_site, | ||
__entry->ptr, | ||
__entry->bytes_req, | ||
__entry->bytes_alloc, | ||
__entry->gfp_flags) | ||
); | ||
|
||
TRACE_EVENT(kmalloc_node, | ||
|
||
TP_PROTO(unsigned long call_site, | ||
const void *ptr, | ||
size_t bytes_req, | ||
size_t bytes_alloc, | ||
gfp_t gfp_flags, | ||
int node), | ||
|
||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
__field( size_t, bytes_req ) | ||
__field( size_t, bytes_alloc ) | ||
__field( gfp_t, gfp_flags ) | ||
__field( int, node ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
__entry->bytes_req = bytes_req; | ||
__entry->bytes_alloc = bytes_alloc; | ||
__entry->gfp_flags = gfp_flags; | ||
__entry->node = node; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%08x node=%d", | ||
__entry->call_site, | ||
__entry->ptr, | ||
__entry->bytes_req, | ||
__entry->bytes_alloc, | ||
__entry->gfp_flags, | ||
__entry->node) | ||
); | ||
|
||
TRACE_EVENT(kmem_cache_alloc_node, | ||
|
||
TP_PROTO(unsigned long call_site, | ||
const void *ptr, | ||
size_t bytes_req, | ||
size_t bytes_alloc, | ||
gfp_t gfp_flags, | ||
int node), | ||
|
||
TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
__field( size_t, bytes_req ) | ||
__field( size_t, bytes_alloc ) | ||
__field( gfp_t, gfp_flags ) | ||
__field( int, node ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
__entry->bytes_req = bytes_req; | ||
__entry->bytes_alloc = bytes_alloc; | ||
__entry->gfp_flags = gfp_flags; | ||
__entry->node = node; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%08x node=%d", | ||
__entry->call_site, | ||
__entry->ptr, | ||
__entry->bytes_req, | ||
__entry->bytes_alloc, | ||
__entry->gfp_flags, | ||
__entry->node) | ||
); | ||
|
||
TRACE_EVENT(kfree, | ||
|
||
TP_PROTO(unsigned long call_site, const void *ptr), | ||
|
||
TP_ARGS(call_site, ptr), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) | ||
); | ||
|
||
TRACE_EVENT(kmem_cache_free, | ||
|
||
TP_PROTO(unsigned long call_site, const void *ptr), | ||
|
||
TP_ARGS(call_site, ptr), | ||
|
||
TP_STRUCT__entry( | ||
__field( unsigned long, call_site ) | ||
__field( const void *, ptr ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->call_site = call_site; | ||
__entry->ptr = ptr; | ||
), | ||
|
||
TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) | ||
); | ||
|
||
#endif |
Oops, something went wrong.