-
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.
Merge branch 'x86-tracing-for-linus' of git://git.kernel.org/pub/scm/…
…linux/kernel/git/tip/tip Pull x86 tracing updates from Ingo Molnar: "This tree adds IRQ vector tracepoints that are named after the handler and which output the vector #, based on a zero-overhead approach that relies on changing the IDT entries, by Seiji Aguchi. The new tracepoints look like this: # perf list | grep -i irq_vector irq_vectors:local_timer_entry [Tracepoint event] irq_vectors:local_timer_exit [Tracepoint event] irq_vectors:reschedule_entry [Tracepoint event] irq_vectors:reschedule_exit [Tracepoint event] irq_vectors:spurious_apic_entry [Tracepoint event] irq_vectors:spurious_apic_exit [Tracepoint event] irq_vectors:error_apic_entry [Tracepoint event] irq_vectors:error_apic_exit [Tracepoint event] [...]" * 'x86-tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/tracing: Add config option checking to the definitions of mce handlers trace,x86: Do not call local_irq_save() in load_current_idt() trace,x86: Move creation of irq tracepoints from apic.c to irq.c x86, trace: Add irq vector tracepoints x86: Rename variables for debugging x86, trace: Introduce entering/exiting_irq() tracing: Add DEFINE_EVENT_FN() macro
- Loading branch information
Showing
24 changed files
with
602 additions
and
72 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
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
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 |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM irq_vectors | ||
|
||
#if !defined(_TRACE_IRQ_VECTORS_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_IRQ_VECTORS_H | ||
|
||
#include <linux/tracepoint.h> | ||
|
||
extern void trace_irq_vector_regfunc(void); | ||
extern void trace_irq_vector_unregfunc(void); | ||
|
||
DECLARE_EVENT_CLASS(x86_irq_vector, | ||
|
||
TP_PROTO(int vector), | ||
|
||
TP_ARGS(vector), | ||
|
||
TP_STRUCT__entry( | ||
__field( int, vector ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->vector = vector; | ||
), | ||
|
||
TP_printk("vector=%d", __entry->vector) ); | ||
|
||
#define DEFINE_IRQ_VECTOR_EVENT(name) \ | ||
DEFINE_EVENT_FN(x86_irq_vector, name##_entry, \ | ||
TP_PROTO(int vector), \ | ||
TP_ARGS(vector), \ | ||
trace_irq_vector_regfunc, \ | ||
trace_irq_vector_unregfunc); \ | ||
DEFINE_EVENT_FN(x86_irq_vector, name##_exit, \ | ||
TP_PROTO(int vector), \ | ||
TP_ARGS(vector), \ | ||
trace_irq_vector_regfunc, \ | ||
trace_irq_vector_unregfunc); | ||
|
||
|
||
/* | ||
* local_timer - called when entering/exiting a local timer interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(local_timer); | ||
|
||
/* | ||
* reschedule - called when entering/exiting a reschedule vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(reschedule); | ||
|
||
/* | ||
* spurious_apic - called when entering/exiting a spurious apic vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(spurious_apic); | ||
|
||
/* | ||
* error_apic - called when entering/exiting an error apic vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(error_apic); | ||
|
||
/* | ||
* x86_platform_ipi - called when entering/exiting a x86 platform ipi interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(x86_platform_ipi); | ||
|
||
/* | ||
* irq_work - called when entering/exiting a irq work interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(irq_work); | ||
|
||
/* | ||
* call_function - called when entering/exiting a call function interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(call_function); | ||
|
||
/* | ||
* call_function_single - called when entering/exiting a call function | ||
* single interrupt vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(call_function_single); | ||
|
||
/* | ||
* threshold_apic - called when entering/exiting a threshold apic interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(threshold_apic); | ||
|
||
/* | ||
* thermal_apic - called when entering/exiting a thermal apic interrupt | ||
* vector handler | ||
*/ | ||
DEFINE_IRQ_VECTOR_EVENT(thermal_apic); | ||
|
||
#undef TRACE_INCLUDE_PATH | ||
#define TRACE_INCLUDE_PATH . | ||
#define TRACE_INCLUDE_FILE irq_vectors | ||
#endif /* _TRACE_IRQ_VECTORS_H */ | ||
|
||
/* This part must be outside protection */ | ||
#include <trace/define_trace.h> |
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
Oops, something went wrong.