mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-10-03 23:16:55 +00:00

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>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_IRQ_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])
|
|
);
|
|
|
|
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
|