linux/arch/x86/include/asm/msr-trace.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#undef TRACE_SYSTEM
   3#define TRACE_SYSTEM msr
   4
   5#undef TRACE_INCLUDE_FILE
   6#define TRACE_INCLUDE_FILE msr-trace
   7
   8#undef TRACE_INCLUDE_PATH
   9#define TRACE_INCLUDE_PATH asm/
  10
  11#if !defined(_TRACE_MSR_H) || defined(TRACE_HEADER_MULTI_READ)
  12#define _TRACE_MSR_H
  13
  14#include <linux/tracepoint.h>
  15
  16/*
  17 * Tracing for x86 model specific registers. Directly maps to the
  18 * RDMSR/WRMSR instructions.
  19 */
  20
  21DECLARE_EVENT_CLASS(msr_trace_class,
  22            TP_PROTO(unsigned msr, u64 val, int failed),
  23            TP_ARGS(msr, val, failed),
  24            TP_STRUCT__entry(
  25                    __field(    unsigned,       msr )
  26                    __field(    u64,            val )
  27                    __field(    int,            failed )
  28            ),
  29            TP_fast_assign(
  30                    __entry->msr = msr;
  31                    __entry->val = val;
  32                    __entry->failed = failed;
  33            ),
  34            TP_printk("%x, value %llx%s",
  35                      __entry->msr,
  36                      __entry->val,
  37                      __entry->failed ? " #GP" : "")
  38);
  39
  40DEFINE_EVENT(msr_trace_class, read_msr,
  41             TP_PROTO(unsigned msr, u64 val, int failed),
  42             TP_ARGS(msr, val, failed)
  43);
  44
  45DEFINE_EVENT(msr_trace_class, write_msr,
  46             TP_PROTO(unsigned msr, u64 val, int failed),
  47             TP_ARGS(msr, val, failed)
  48);
  49
  50DEFINE_EVENT(msr_trace_class, rdpmc,
  51             TP_PROTO(unsigned msr, u64 val, int failed),
  52             TP_ARGS(msr, val, failed)
  53);
  54
  55#endif /* _TRACE_MSR_H */
  56
  57/* This part must be outside protection */
  58#include <trace/define_trace.h>
  59