Re: [PATCH 3/4] x86: Add trace point for MSR accesses

From: Steven Rostedt
Date: Tue Oct 20 2015 - 15:39:19 EST


On Tue, 20 Oct 2015 11:40:45 -0700
Andi Kleen <andi@xxxxxxxxxxxxxx> 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>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/