Messages in this thread | | | Date | Tue, 20 Oct 2015 15:39:09 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH 3/4] x86: Add trace point for MSR accesses |
| |
On Tue, 20 Oct 2015 11:40:45 -0700 Andi Kleen <andi@firstfloor.org> wrote:
> diff --git a/include/trace/events/msr.h b/include/trace/events/msr.h
Architecture specific tracepoints should not exist in include/trace. Please move this to arch/x86/lib (or some other x86 directory).
See samples/trace_events/ for how to have a header outside of include/trace.
-- Steve
> new file mode 100644 > index 0000000..b2232b5 > --- /dev/null > +++ b/include/trace/events/msr.h > @@ -0,0 +1,51 @@ > +#undef TRACE_SYSTEM > +#define TRACE_SYSTEM msr > + > +#if !defined(_TRACE_MSR_H) || defined(TRACE_HEADER_MULTI_READ) > +#define _TRACE_MSR_H > + > +#include <linux/tracepoint.h> > + > +/* > + * Tracing for x86 model specific registers. Directly maps to the > + * RDMSR/WRMSR instructions. > + */ > + > +DECLARE_EVENT_CLASS(msr_trace_class, > + TP_PROTO(unsigned msr, u64 val, int failed), > + TP_ARGS(msr, val, failed), > + TP_STRUCT__entry( > + __field( unsigned, msr ) > + __field( u64, val ) > + __field( int, failed ) > + ), > + TP_fast_assign( > + __entry->msr = msr; > + __entry->val = val; > + __entry->failed = failed; > + ), > + TP_printk("%x, value %llx%s", > + __entry->msr, > + __entry->val, > + __entry->failed ? " #GP" : "") > +); > + > +DEFINE_EVENT(msr_trace_class, read_msr, > + TP_PROTO(unsigned msr, u64 val, int failed), > + TP_ARGS(msr, val, failed) > +); > + > +DEFINE_EVENT(msr_trace_class, write_msr, > + TP_PROTO(unsigned msr, u64 val, int failed), > + TP_ARGS(msr, val, failed) > +); > + > +DEFINE_EVENT(msr_trace_class, rdpmc, > + TP_PROTO(unsigned msr, u64 val, int failed), > + TP_ARGS(msr, val, failed) > +); > + > +#endif /* _TRACE_MSR_H */ > + > +/* This part must be outside protection */ > +#include <trace/define_trace.h>
| |