GNU Linux-libre 4.9.337-gnu1
[releases.git] / arch / powerpc / kvm / trace.h
1 #if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
2 #define _TRACE_KVM_H
3
4 #include <linux/tracepoint.h>
5
6 #undef TRACE_SYSTEM
7 #define TRACE_SYSTEM kvm
8
9 /*
10  * Tracepoint for guest mode entry.
11  */
12 TRACE_EVENT(kvm_ppc_instr,
13         TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
14         TP_ARGS(inst, _pc, emulate),
15
16         TP_STRUCT__entry(
17                 __field(        unsigned int,   inst            )
18                 __field(        unsigned long,  pc              )
19                 __field(        unsigned int,   emulate         )
20         ),
21
22         TP_fast_assign(
23                 __entry->inst           = inst;
24                 __entry->pc             = _pc;
25                 __entry->emulate        = emulate;
26         ),
27
28         TP_printk("inst %u pc 0x%lx emulate %u\n",
29                   __entry->inst, __entry->pc, __entry->emulate)
30 );
31
32 TRACE_EVENT(kvm_stlb_inval,
33         TP_PROTO(unsigned int stlb_index),
34         TP_ARGS(stlb_index),
35
36         TP_STRUCT__entry(
37                 __field(        unsigned int,   stlb_index      )
38         ),
39
40         TP_fast_assign(
41                 __entry->stlb_index     = stlb_index;
42         ),
43
44         TP_printk("stlb_index %u", __entry->stlb_index)
45 );
46
47 TRACE_EVENT(kvm_stlb_write,
48         TP_PROTO(unsigned int victim, unsigned int tid, unsigned int word0,
49                  unsigned int word1, unsigned int word2),
50         TP_ARGS(victim, tid, word0, word1, word2),
51
52         TP_STRUCT__entry(
53                 __field(        unsigned int,   victim          )
54                 __field(        unsigned int,   tid             )
55                 __field(        unsigned int,   word0           )
56                 __field(        unsigned int,   word1           )
57                 __field(        unsigned int,   word2           )
58         ),
59
60         TP_fast_assign(
61                 __entry->victim         = victim;
62                 __entry->tid            = tid;
63                 __entry->word0          = word0;
64                 __entry->word1          = word1;
65                 __entry->word2          = word2;
66         ),
67
68         TP_printk("victim %u tid %u w0 %u w1 %u w2 %u",
69                 __entry->victim, __entry->tid, __entry->word0,
70                 __entry->word1, __entry->word2)
71 );
72
73 TRACE_EVENT(kvm_gtlb_write,
74         TP_PROTO(unsigned int gtlb_index, unsigned int tid, unsigned int word0,
75                  unsigned int word1, unsigned int word2),
76         TP_ARGS(gtlb_index, tid, word0, word1, word2),
77
78         TP_STRUCT__entry(
79                 __field(        unsigned int,   gtlb_index      )
80                 __field(        unsigned int,   tid             )
81                 __field(        unsigned int,   word0           )
82                 __field(        unsigned int,   word1           )
83                 __field(        unsigned int,   word2           )
84         ),
85
86         TP_fast_assign(
87                 __entry->gtlb_index     = gtlb_index;
88                 __entry->tid            = tid;
89                 __entry->word0          = word0;
90                 __entry->word1          = word1;
91                 __entry->word2          = word2;
92         ),
93
94         TP_printk("gtlb_index %u tid %u w0 %u w1 %u w2 %u",
95                 __entry->gtlb_index, __entry->tid, __entry->word0,
96                 __entry->word1, __entry->word2)
97 );
98
99 TRACE_EVENT(kvm_check_requests,
100         TP_PROTO(struct kvm_vcpu *vcpu),
101         TP_ARGS(vcpu),
102
103         TP_STRUCT__entry(
104                 __field(        __u32,  cpu_nr          )
105                 __field(        __u32,  requests        )
106         ),
107
108         TP_fast_assign(
109                 __entry->cpu_nr         = vcpu->vcpu_id;
110                 __entry->requests       = vcpu->requests;
111         ),
112
113         TP_printk("vcpu=%x requests=%x",
114                 __entry->cpu_nr, __entry->requests)
115 );
116
117 #endif /* _TRACE_KVM_H */
118
119 /* This part must be outside protection */
120 #undef TRACE_INCLUDE_PATH
121 #undef TRACE_INCLUDE_FILE
122
123 #define TRACE_INCLUDE_PATH .
124 #define TRACE_INCLUDE_FILE trace
125
126 #include <trace/define_trace.h>