Commit | Line | Data |
---|---|---|
76241271 SH |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | ||
c9fe0f8f VK |
3 | #undef TRACE_SYSTEM |
4 | #define TRACE_SYSTEM hyperv | |
5 | ||
6 | #if !defined(_HV_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) | |
7 | #define _HV_TRACE_H | |
8 | ||
9 | #include <linux/tracepoint.h> | |
10 | ||
11 | DECLARE_EVENT_CLASS(vmbus_hdr_msg, | |
12 | TP_PROTO(const struct vmbus_channel_message_header *hdr), | |
13 | TP_ARGS(hdr), | |
14 | TP_STRUCT__entry(__field(unsigned int, msgtype)), | |
15 | TP_fast_assign(__entry->msgtype = hdr->msgtype;), | |
16 | TP_printk("msgtype=%u", __entry->msgtype) | |
17 | ); | |
18 | ||
19 | DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_msg_dpc, | |
20 | TP_PROTO(const struct vmbus_channel_message_header *hdr), | |
21 | TP_ARGS(hdr) | |
22 | ); | |
23 | ||
716fa52f VK |
24 | DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_message, |
25 | TP_PROTO(const struct vmbus_channel_message_header *hdr), | |
26 | TP_ARGS(hdr) | |
27 | ); | |
28 | ||
03b81e66 VK |
29 | TRACE_EVENT(vmbus_onoffer, |
30 | TP_PROTO(const struct vmbus_channel_offer_channel *offer), | |
31 | TP_ARGS(offer), | |
32 | TP_STRUCT__entry( | |
33 | __field(u32, child_relid) | |
34 | __field(u8, monitorid) | |
35 | __field(u16, is_ddc_int) | |
36 | __field(u32, connection_id) | |
37 | __array(char, if_type, 16) | |
38 | __array(char, if_instance, 16) | |
39 | __field(u16, chn_flags) | |
40 | __field(u16, mmio_mb) | |
41 | __field(u16, sub_idx) | |
42 | ), | |
43 | TP_fast_assign(__entry->child_relid = offer->child_relid; | |
44 | __entry->monitorid = offer->monitorid; | |
45 | __entry->is_ddc_int = offer->is_dedicated_interrupt; | |
46 | __entry->connection_id = offer->connection_id; | |
47 | memcpy(__entry->if_type, | |
48 | &offer->offer.if_type.b, 16); | |
49 | memcpy(__entry->if_instance, | |
50 | &offer->offer.if_instance.b, 16); | |
51 | __entry->chn_flags = offer->offer.chn_flags; | |
52 | __entry->mmio_mb = offer->offer.mmio_megabytes; | |
53 | __entry->sub_idx = offer->offer.sub_channel_index; | |
54 | ), | |
55 | TP_printk("child_relid 0x%x, monitorid 0x%x, is_dedicated %d, " | |
56 | "connection_id 0x%x, if_type %pUl, if_instance %pUl, " | |
57 | "chn_flags 0x%x, mmio_megabytes %d, sub_channel_index %d", | |
58 | __entry->child_relid, __entry->monitorid, | |
59 | __entry->is_ddc_int, __entry->connection_id, | |
60 | __entry->if_type, __entry->if_instance, | |
61 | __entry->chn_flags, __entry->mmio_mb, | |
62 | __entry->sub_idx | |
63 | ) | |
64 | ); | |
65 | ||
5175167c VK |
66 | TRACE_EVENT(vmbus_onoffer_rescind, |
67 | TP_PROTO(const struct vmbus_channel_rescind_offer *offer), | |
68 | TP_ARGS(offer), | |
69 | TP_STRUCT__entry(__field(u32, child_relid)), | |
70 | TP_fast_assign(__entry->child_relid = offer->child_relid), | |
71 | TP_printk("child_relid 0x%x", __entry->child_relid) | |
72 | ); | |
73 | ||
9f23ce1a VK |
74 | TRACE_EVENT(vmbus_onopen_result, |
75 | TP_PROTO(const struct vmbus_channel_open_result *result), | |
76 | TP_ARGS(result), | |
77 | TP_STRUCT__entry( | |
78 | __field(u32, child_relid) | |
79 | __field(u32, openid) | |
80 | __field(u32, status) | |
81 | ), | |
82 | TP_fast_assign(__entry->child_relid = result->child_relid; | |
83 | __entry->openid = result->openid; | |
84 | __entry->status = result->status; | |
85 | ), | |
86 | TP_printk("child_relid 0x%x, openid %d, status %d", | |
87 | __entry->child_relid, __entry->openid, __entry->status | |
88 | ) | |
89 | ); | |
90 | ||
a13bf0ea VK |
91 | TRACE_EVENT(vmbus_ongpadl_created, |
92 | TP_PROTO(const struct vmbus_channel_gpadl_created *gpadlcreated), | |
93 | TP_ARGS(gpadlcreated), | |
94 | TP_STRUCT__entry( | |
95 | __field(u32, child_relid) | |
96 | __field(u32, gpadl) | |
97 | __field(u32, status) | |
98 | ), | |
99 | TP_fast_assign(__entry->child_relid = gpadlcreated->child_relid; | |
100 | __entry->gpadl = gpadlcreated->gpadl; | |
101 | __entry->status = gpadlcreated->creation_status; | |
102 | ), | |
103 | TP_printk("child_relid 0x%x, gpadl 0x%x, creation_status %d", | |
104 | __entry->child_relid, __entry->gpadl, __entry->status | |
105 | ) | |
106 | ); | |
107 | ||
602a8c52 VK |
108 | TRACE_EVENT(vmbus_ongpadl_torndown, |
109 | TP_PROTO(const struct vmbus_channel_gpadl_torndown *gpadltorndown), | |
110 | TP_ARGS(gpadltorndown), | |
111 | TP_STRUCT__entry(__field(u32, gpadl)), | |
112 | TP_fast_assign(__entry->gpadl = gpadltorndown->gpadl), | |
113 | TP_printk("gpadl 0x%x", __entry->gpadl) | |
114 | ); | |
115 | ||
c7924fb0 VK |
116 | TRACE_EVENT(vmbus_onversion_response, |
117 | TP_PROTO(const struct vmbus_channel_version_response *response), | |
118 | TP_ARGS(response), | |
119 | TP_STRUCT__entry( | |
120 | __field(u8, ver) | |
121 | ), | |
122 | TP_fast_assign(__entry->ver = response->version_supported; | |
123 | ), | |
124 | TP_printk("version_supported %d", __entry->ver) | |
125 | ); | |
126 | ||
d6706e63 VK |
127 | TRACE_EVENT(vmbus_request_offers, |
128 | TP_PROTO(int ret), | |
129 | TP_ARGS(ret), | |
130 | TP_STRUCT__entry(__field(int, ret)), | |
131 | TP_fast_assign(__entry->ret = ret), | |
132 | TP_printk("sending ret %d", __entry->ret) | |
133 | ); | |
134 | ||
9202d771 VK |
135 | TRACE_EVENT(vmbus_open, |
136 | TP_PROTO(const struct vmbus_channel_open_channel *msg, int ret), | |
137 | TP_ARGS(msg, ret), | |
138 | TP_STRUCT__entry( | |
139 | __field(u32, child_relid) | |
140 | __field(u32, openid) | |
141 | __field(u32, gpadlhandle) | |
142 | __field(u32, target_vp) | |
143 | __field(u32, offset) | |
144 | __field(int, ret) | |
145 | ), | |
146 | TP_fast_assign( | |
147 | __entry->child_relid = msg->child_relid; | |
148 | __entry->openid = msg->openid; | |
149 | __entry->gpadlhandle = msg->ringbuffer_gpadlhandle; | |
150 | __entry->target_vp = msg->target_vp; | |
151 | __entry->offset = msg->downstream_ringbuffer_pageoffset; | |
152 | __entry->ret = ret; | |
153 | ), | |
154 | TP_printk("sending child_relid 0x%x, openid %d, " | |
155 | "gpadlhandle 0x%x, target_vp 0x%x, offset 0x%x, ret %d", | |
156 | __entry->child_relid, __entry->openid, | |
157 | __entry->gpadlhandle, __entry->target_vp, | |
158 | __entry->offset, __entry->ret | |
159 | ) | |
160 | ); | |
161 | ||
633b005d VK |
162 | TRACE_EVENT(vmbus_close_internal, |
163 | TP_PROTO(const struct vmbus_channel_close_channel *msg, int ret), | |
164 | TP_ARGS(msg, ret), | |
165 | TP_STRUCT__entry( | |
166 | __field(u32, child_relid) | |
167 | __field(int, ret) | |
168 | ), | |
169 | TP_fast_assign( | |
170 | __entry->child_relid = msg->child_relid; | |
171 | __entry->ret = ret; | |
172 | ), | |
173 | TP_printk("sending child_relid 0x%x, ret %d", __entry->child_relid, | |
174 | __entry->ret) | |
175 | ); | |
176 | ||
69edbd5f VK |
177 | TRACE_EVENT(vmbus_establish_gpadl_header, |
178 | TP_PROTO(const struct vmbus_channel_gpadl_header *msg, int ret), | |
179 | TP_ARGS(msg, ret), | |
180 | TP_STRUCT__entry( | |
181 | __field(u32, child_relid) | |
182 | __field(u32, gpadl) | |
183 | __field(u16, range_buflen) | |
184 | __field(u16, rangecount) | |
185 | __field(int, ret) | |
186 | ), | |
187 | TP_fast_assign( | |
188 | __entry->child_relid = msg->child_relid; | |
189 | __entry->gpadl = msg->gpadl; | |
190 | __entry->range_buflen = msg->range_buflen; | |
191 | __entry->rangecount = msg->rangecount; | |
192 | __entry->ret = ret; | |
193 | ), | |
194 | TP_printk("sending child_relid 0x%x, gpadl 0x%x, range_buflen %d " | |
195 | "rangecount %d, ret %d", | |
196 | __entry->child_relid, __entry->gpadl, | |
197 | __entry->range_buflen, __entry->rangecount, __entry->ret | |
198 | ) | |
199 | ); | |
200 | ||
201 | TRACE_EVENT(vmbus_establish_gpadl_body, | |
202 | TP_PROTO(const struct vmbus_channel_gpadl_body *msg, int ret), | |
203 | TP_ARGS(msg, ret), | |
204 | TP_STRUCT__entry( | |
205 | __field(u32, msgnumber) | |
206 | __field(u32, gpadl) | |
207 | __field(int, ret) | |
208 | ), | |
209 | TP_fast_assign( | |
210 | __entry->msgnumber = msg->msgnumber; | |
211 | __entry->gpadl = msg->gpadl; | |
212 | __entry->ret = ret; | |
213 | ), | |
214 | TP_printk("sending msgnumber %d, gpadl 0x%x, ret %d", | |
215 | __entry->msgnumber, __entry->gpadl, __entry->ret | |
216 | ) | |
217 | ); | |
218 | ||
09cdf8f8 VK |
219 | TRACE_EVENT(vmbus_teardown_gpadl, |
220 | TP_PROTO(const struct vmbus_channel_gpadl_teardown *msg, int ret), | |
221 | TP_ARGS(msg, ret), | |
222 | TP_STRUCT__entry( | |
223 | __field(u32, child_relid) | |
224 | __field(u32, gpadl) | |
225 | __field(int, ret) | |
226 | ), | |
227 | TP_fast_assign( | |
228 | __entry->child_relid = msg->child_relid; | |
229 | __entry->gpadl = msg->gpadl; | |
230 | __entry->ret = ret; | |
231 | ), | |
232 | TP_printk("sending child_relid 0x%x, gpadl 0x%x, ret %d", | |
233 | __entry->child_relid, __entry->gpadl, __entry->ret | |
234 | ) | |
235 | ); | |
236 | ||
034ebf55 VK |
237 | TRACE_EVENT(vmbus_negotiate_version, |
238 | TP_PROTO(const struct vmbus_channel_initiate_contact *msg, int ret), | |
239 | TP_ARGS(msg, ret), | |
240 | TP_STRUCT__entry( | |
241 | __field(u32, ver) | |
242 | __field(u32, target_vcpu) | |
243 | __field(int, ret) | |
244 | __field(u64, int_page) | |
245 | __field(u64, mon_page1) | |
246 | __field(u64, mon_page2) | |
247 | ), | |
248 | TP_fast_assign( | |
249 | __entry->ver = msg->vmbus_version_requested; | |
250 | __entry->target_vcpu = msg->target_vcpu; | |
251 | __entry->int_page = msg->interrupt_page; | |
252 | __entry->mon_page1 = msg->monitor_page1; | |
253 | __entry->mon_page2 = msg->monitor_page2; | |
254 | __entry->ret = ret; | |
255 | ), | |
256 | TP_printk("sending vmbus_version_requested %d, target_vcpu 0x%x, " | |
257 | "pages %llx:%llx:%llx, ret %d", | |
258 | __entry->ver, __entry->target_vcpu, __entry->int_page, | |
259 | __entry->mon_page1, __entry->mon_page2, __entry->ret | |
260 | ) | |
261 | ); | |
262 | ||
259cc665 VK |
263 | TRACE_EVENT(vmbus_release_relid, |
264 | TP_PROTO(const struct vmbus_channel_relid_released *msg, int ret), | |
265 | TP_ARGS(msg, ret), | |
266 | TP_STRUCT__entry( | |
267 | __field(u32, child_relid) | |
268 | __field(int, ret) | |
269 | ), | |
270 | TP_fast_assign( | |
271 | __entry->child_relid = msg->child_relid; | |
272 | __entry->ret = ret; | |
273 | ), | |
274 | TP_printk("sending child_relid 0x%x, ret %d", | |
275 | __entry->child_relid, __entry->ret | |
276 | ) | |
277 | ); | |
278 | ||
98f31a00 VK |
279 | TRACE_EVENT(vmbus_send_tl_connect_request, |
280 | TP_PROTO(const struct vmbus_channel_tl_connect_request *msg, | |
281 | int ret), | |
282 | TP_ARGS(msg, ret), | |
283 | TP_STRUCT__entry( | |
284 | __array(char, guest_id, 16) | |
285 | __array(char, host_id, 16) | |
286 | __field(int, ret) | |
287 | ), | |
288 | TP_fast_assign( | |
289 | memcpy(__entry->guest_id, &msg->guest_endpoint_id.b, 16); | |
290 | memcpy(__entry->host_id, &msg->host_service_id.b, 16); | |
291 | __entry->ret = ret; | |
292 | ), | |
293 | TP_printk("sending guest_endpoint_id %pUl, host_service_id %pUl, " | |
294 | "ret %d", | |
295 | __entry->guest_id, __entry->host_id, __entry->ret | |
296 | ) | |
297 | ); | |
298 | ||
991f8f1c VK |
299 | DECLARE_EVENT_CLASS(vmbus_channel, |
300 | TP_PROTO(const struct vmbus_channel *channel), | |
301 | TP_ARGS(channel), | |
302 | TP_STRUCT__entry(__field(u32, relid)), | |
303 | TP_fast_assign(__entry->relid = channel->offermsg.child_relid), | |
304 | TP_printk("relid 0x%x", __entry->relid) | |
305 | ); | |
306 | ||
307 | DEFINE_EVENT(vmbus_channel, vmbus_chan_sched, | |
308 | TP_PROTO(const struct vmbus_channel *channel), | |
309 | TP_ARGS(channel) | |
310 | ); | |
311 | ||
312 | DEFINE_EVENT(vmbus_channel, vmbus_setevent, | |
313 | TP_PROTO(const struct vmbus_channel *channel), | |
314 | TP_ARGS(channel) | |
315 | ); | |
316 | ||
317 | DEFINE_EVENT(vmbus_channel, vmbus_on_event, | |
318 | TP_PROTO(const struct vmbus_channel *channel), | |
319 | TP_ARGS(channel) | |
320 | ); | |
321 | ||
c9fe0f8f VK |
322 | #undef TRACE_INCLUDE_PATH |
323 | #define TRACE_INCLUDE_PATH . | |
324 | #undef TRACE_INCLUDE_FILE | |
325 | #define TRACE_INCLUDE_FILE hv_trace | |
326 | #endif /* _HV_TRACE_H */ | |
327 | ||
328 | /* This part must be outside protection */ | |
329 | #include <trace/define_trace.h> |