lkml.org 
[lkml]   [2015]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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>



\
 
 \ /
  Last update: 2015-10-20 22:01    [W:0.037 / U:0.860 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site