linux_dsm_epyc7002/arch/x86/include/asm/trace/exceptions.h
Thomas Gleixner 809547472e x86/tracing: Disentangle pagefault and resched IPI tracing key
The pagefault and the resched IPI handler are the only ones where it is
worth to optimize the code further in case tracepoints are disabled. But it
makes no sense to have a single static key for both.

Seperate the static keys so the facilities are handled seperately.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/20170828064957.536699116@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-29 11:42:29 +02:00

53 lines
1.4 KiB
C

#undef TRACE_SYSTEM
#define TRACE_SYSTEM exceptions
#if !defined(_TRACE_PAGE_FAULT_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_PAGE_FAULT_H
#include <linux/tracepoint.h>
#include <asm/trace/common.h>
extern int trace_pagefault_reg(void);
extern void trace_pagefault_unreg(void);
DECLARE_EVENT_CLASS(x86_exceptions,
TP_PROTO(unsigned long address, struct pt_regs *regs,
unsigned long error_code),
TP_ARGS(address, regs, error_code),
TP_STRUCT__entry(
__field( unsigned long, address )
__field( unsigned long, ip )
__field( unsigned long, error_code )
),
TP_fast_assign(
__entry->address = address;
__entry->ip = regs->ip;
__entry->error_code = error_code;
),
TP_printk("address=%pf ip=%pf error_code=0x%lx",
(void *)__entry->address, (void *)__entry->ip,
__entry->error_code) );
#define DEFINE_PAGE_FAULT_EVENT(name) \
DEFINE_EVENT_FN(x86_exceptions, name, \
TP_PROTO(unsigned long address, struct pt_regs *regs, \
unsigned long error_code), \
TP_ARGS(address, regs, error_code), \
trace_pagefault_reg, trace_pagefault_unreg);
DEFINE_PAGE_FAULT_EVENT(page_fault_user);
DEFINE_PAGE_FAULT_EVENT(page_fault_kernel);
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#define TRACE_INCLUDE_FILE exceptions
#endif /* _TRACE_PAGE_FAULT_H */
/* This part must be outside protection */
#include <trace/define_trace.h>