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