0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM msr
0004
0005 #undef TRACE_INCLUDE_FILE
0006 #define TRACE_INCLUDE_FILE msr-trace
0007
0008 #undef TRACE_INCLUDE_PATH
0009 #define TRACE_INCLUDE_PATH asm/
0010
0011 #if !defined(_TRACE_MSR_H) || defined(TRACE_HEADER_MULTI_READ)
0012 #define _TRACE_MSR_H
0013
0014 #include <linux/tracepoint.h>
0015
0016
0017
0018
0019
0020
0021 DECLARE_EVENT_CLASS(msr_trace_class,
0022 TP_PROTO(unsigned msr, u64 val, int failed),
0023 TP_ARGS(msr, val, failed),
0024 TP_STRUCT__entry(
0025 __field( unsigned, msr )
0026 __field( u64, val )
0027 __field( int, failed )
0028 ),
0029 TP_fast_assign(
0030 __entry->msr = msr;
0031 __entry->val = val;
0032 __entry->failed = failed;
0033 ),
0034 TP_printk("%x, value %llx%s",
0035 __entry->msr,
0036 __entry->val,
0037 __entry->failed ? " #GP" : "")
0038 );
0039
0040 DEFINE_EVENT(msr_trace_class, read_msr,
0041 TP_PROTO(unsigned msr, u64 val, int failed),
0042 TP_ARGS(msr, val, failed)
0043 );
0044
0045 DEFINE_EVENT(msr_trace_class, write_msr,
0046 TP_PROTO(unsigned msr, u64 val, int failed),
0047 TP_ARGS(msr, val, failed)
0048 );
0049
0050 DEFINE_EVENT(msr_trace_class, rdpmc,
0051 TP_PROTO(unsigned msr, u64 val, int failed),
0052 TP_ARGS(msr, val, failed)
0053 );
0054
0055 #endif
0056
0057
0058 #include <trace/define_trace.h>