Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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  * Tracing for x86 model specific registers. Directly maps to the
0018  * RDMSR/WRMSR instructions.
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 /* _TRACE_MSR_H */
0056 
0057 /* This part must be outside protection */
0058 #include <trace/define_trace.h>