Messages in this thread Patch in this message | | | From | Francis Deslauriers <> | Subject | [page fault tracepoint 1/2] Add page fault trace event definitions | Date | Thu, 9 May 2013 02:05:19 -0400 |
| |
Add page_fault_entry and page_fault_exit event definitions. It will allow each architecture to instrument their page faults.
Signed-off-by: Francis Deslauriers <fdeslaur@gmail.com> Reviewed-by: Raphaël Beamonte <raphael.beamonte@gmail.com> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> --- include/trace/events/fault.h | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 include/trace/events/fault.h
diff --git a/include/trace/events/fault.h b/include/trace/events/fault.h new file mode 100644 index 0000000..522ddee --- /dev/null +++ b/include/trace/events/fault.h @@ -0,0 +1,51 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM fault + +#if !defined(_TRACE_FAULT_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_FAULT_H + +#include <linux/tracepoint.h> + +TRACE_EVENT(page_fault_entry, + + TP_PROTO(struct pt_regs *regs, unsigned long address, + int write_access), + + TP_ARGS(regs, address, write_access), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( unsigned long, addr ) + __field( uint8_t, write ) + ), + + TP_fast_assign( + __entry->ip = regs ? instruction_pointer(regs) : 0UL; + __entry->addr = address; + __entry->write = !!write_access; + ), + + TP_printk("ip=%lu addr=%lu write_access=%d", + __entry->ip, __entry->addr, __entry->write) +); + +TRACE_EVENT(page_fault_exit, + + TP_PROTO(int result), + + TP_ARGS(result), + + TP_STRUCT__entry( + __field( int, res ) + ), + + TP_fast_assign( + __entry->res = result; + ), + + TP_printk("result=%d", __entry->res) +); + +#endif /* _TRACE_FAULT_H */ +/* This part must be outside protection */ +#include <trace/define_trace.h> -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |