Commit | Line | Data |
---|---|---|
eccb4422 SF |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* | |
3 | * Copyright (C) 2018, Microsoft Corporation. | |
4 | * | |
5 | * Author(s): Steve French <stfrench@microsoft.com> | |
eccb4422 SF |
6 | */ |
7 | #undef TRACE_SYSTEM | |
8 | #define TRACE_SYSTEM cifs | |
9 | ||
10 | #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) | |
11 | #define _CIFS_TRACE_H | |
12 | ||
13 | #include <linux/tracepoint.h> | |
d7171cd1 SF |
14 | #include <linux/net.h> |
15 | #include <linux/inet.h> | |
eccb4422 | 16 | |
eb068818 SP |
17 | /* |
18 | * Please use this 3-part article as a reference for writing new tracepoints: | |
19 | * https://lwn.net/Articles/379903/ | |
20 | */ | |
21 | ||
eccb4422 SF |
22 | /* For logging errors in read or write */ |
23 | DECLARE_EVENT_CLASS(smb3_rw_err_class, | |
24 | TP_PROTO(unsigned int xid, | |
25 | __u64 fid, | |
26 | __u32 tid, | |
27 | __u64 sesid, | |
28 | __u64 offset, | |
29 | __u32 len, | |
30 | int rc), | |
31 | TP_ARGS(xid, fid, tid, sesid, offset, len, rc), | |
32 | TP_STRUCT__entry( | |
33 | __field(unsigned int, xid) | |
34 | __field(__u64, fid) | |
35 | __field(__u32, tid) | |
36 | __field(__u64, sesid) | |
37 | __field(__u64, offset) | |
38 | __field(__u32, len) | |
39 | __field(int, rc) | |
40 | ), | |
41 | TP_fast_assign( | |
42 | __entry->xid = xid; | |
43 | __entry->fid = fid; | |
44 | __entry->tid = tid; | |
45 | __entry->sesid = sesid; | |
46 | __entry->offset = offset; | |
47 | __entry->len = len; | |
48 | __entry->rc = rc; | |
49 | ), | |
d683bcd3 SF |
50 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d", |
51 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
52 | __entry->offset, __entry->len, __entry->rc) |
53 | ) | |
54 | ||
55 | #define DEFINE_SMB3_RW_ERR_EVENT(name) \ | |
56 | DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \ | |
57 | TP_PROTO(unsigned int xid, \ | |
58 | __u64 fid, \ | |
59 | __u32 tid, \ | |
60 | __u64 sesid, \ | |
61 | __u64 offset, \ | |
62 | __u32 len, \ | |
63 | int rc), \ | |
64 | TP_ARGS(xid, fid, tid, sesid, offset, len, rc)) | |
65 | ||
66 | DEFINE_SMB3_RW_ERR_EVENT(write_err); | |
67 | DEFINE_SMB3_RW_ERR_EVENT(read_err); | |
adb3b4e9 | 68 | DEFINE_SMB3_RW_ERR_EVENT(query_dir_err); |
779ede04 SF |
69 | DEFINE_SMB3_RW_ERR_EVENT(zero_err); |
70 | DEFINE_SMB3_RW_ERR_EVENT(falloc_err); | |
eccb4422 SF |
71 | |
72 | ||
73 | /* For logging successful read or write */ | |
74 | DECLARE_EVENT_CLASS(smb3_rw_done_class, | |
75 | TP_PROTO(unsigned int xid, | |
76 | __u64 fid, | |
77 | __u32 tid, | |
78 | __u64 sesid, | |
79 | __u64 offset, | |
80 | __u32 len), | |
81 | TP_ARGS(xid, fid, tid, sesid, offset, len), | |
82 | TP_STRUCT__entry( | |
83 | __field(unsigned int, xid) | |
84 | __field(__u64, fid) | |
85 | __field(__u32, tid) | |
86 | __field(__u64, sesid) | |
87 | __field(__u64, offset) | |
88 | __field(__u32, len) | |
89 | ), | |
90 | TP_fast_assign( | |
91 | __entry->xid = xid; | |
92 | __entry->fid = fid; | |
93 | __entry->tid = tid; | |
94 | __entry->sesid = sesid; | |
95 | __entry->offset = offset; | |
96 | __entry->len = len; | |
97 | ), | |
d683bcd3 SF |
98 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x", |
99 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
100 | __entry->offset, __entry->len) |
101 | ) | |
102 | ||
103 | #define DEFINE_SMB3_RW_DONE_EVENT(name) \ | |
104 | DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \ | |
105 | TP_PROTO(unsigned int xid, \ | |
106 | __u64 fid, \ | |
107 | __u32 tid, \ | |
108 | __u64 sesid, \ | |
109 | __u64 offset, \ | |
110 | __u32 len), \ | |
111 | TP_ARGS(xid, fid, tid, sesid, offset, len)) | |
112 | ||
d323c246 SF |
113 | DEFINE_SMB3_RW_DONE_EVENT(write_enter); |
114 | DEFINE_SMB3_RW_DONE_EVENT(read_enter); | |
115 | DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter); | |
779ede04 SF |
116 | DEFINE_SMB3_RW_DONE_EVENT(zero_enter); |
117 | DEFINE_SMB3_RW_DONE_EVENT(falloc_enter); | |
eccb4422 SF |
118 | DEFINE_SMB3_RW_DONE_EVENT(write_done); |
119 | DEFINE_SMB3_RW_DONE_EVENT(read_done); | |
adb3b4e9 | 120 | DEFINE_SMB3_RW_DONE_EVENT(query_dir_done); |
779ede04 SF |
121 | DEFINE_SMB3_RW_DONE_EVENT(zero_done); |
122 | DEFINE_SMB3_RW_DONE_EVENT(falloc_done); | |
eccb4422 | 123 | |
7c05eae8 SF |
124 | /* For logging successful set EOF (truncate) */ |
125 | DECLARE_EVENT_CLASS(smb3_eof_class, | |
126 | TP_PROTO(unsigned int xid, | |
127 | __u64 fid, | |
128 | __u32 tid, | |
129 | __u64 sesid, | |
130 | __u64 offset), | |
131 | TP_ARGS(xid, fid, tid, sesid, offset), | |
132 | TP_STRUCT__entry( | |
133 | __field(unsigned int, xid) | |
134 | __field(__u64, fid) | |
135 | __field(__u32, tid) | |
136 | __field(__u64, sesid) | |
137 | __field(__u64, offset) | |
138 | ), | |
139 | TP_fast_assign( | |
140 | __entry->xid = xid; | |
141 | __entry->fid = fid; | |
142 | __entry->tid = tid; | |
143 | __entry->sesid = sesid; | |
144 | __entry->offset = offset; | |
145 | ), | |
146 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx", | |
147 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
148 | __entry->offset) | |
149 | ) | |
150 | ||
151 | #define DEFINE_SMB3_EOF_EVENT(name) \ | |
152 | DEFINE_EVENT(smb3_eof_class, smb3_##name, \ | |
153 | TP_PROTO(unsigned int xid, \ | |
154 | __u64 fid, \ | |
155 | __u32 tid, \ | |
156 | __u64 sesid, \ | |
157 | __u64 offset), \ | |
158 | TP_ARGS(xid, fid, tid, sesid, offset)) | |
159 | ||
160 | DEFINE_SMB3_EOF_EVENT(set_eof); | |
161 | ||
eccb4422 SF |
162 | /* |
163 | * For handle based calls other than read and write, and get/set info | |
164 | */ | |
f90f9797 SF |
165 | DECLARE_EVENT_CLASS(smb3_fd_class, |
166 | TP_PROTO(unsigned int xid, | |
167 | __u64 fid, | |
168 | __u32 tid, | |
169 | __u64 sesid), | |
170 | TP_ARGS(xid, fid, tid, sesid), | |
171 | TP_STRUCT__entry( | |
172 | __field(unsigned int, xid) | |
173 | __field(__u64, fid) | |
174 | __field(__u32, tid) | |
175 | __field(__u64, sesid) | |
176 | ), | |
177 | TP_fast_assign( | |
178 | __entry->xid = xid; | |
179 | __entry->fid = fid; | |
180 | __entry->tid = tid; | |
181 | __entry->sesid = sesid; | |
182 | ), | |
183 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx", | |
184 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid) | |
185 | ) | |
186 | ||
187 | #define DEFINE_SMB3_FD_EVENT(name) \ | |
188 | DEFINE_EVENT(smb3_fd_class, smb3_##name, \ | |
189 | TP_PROTO(unsigned int xid, \ | |
190 | __u64 fid, \ | |
191 | __u32 tid, \ | |
192 | __u64 sesid), \ | |
193 | TP_ARGS(xid, fid, tid, sesid)) | |
194 | ||
195 | DEFINE_SMB3_FD_EVENT(flush_enter); | |
196 | DEFINE_SMB3_FD_EVENT(flush_done); | |
197 | DEFINE_SMB3_FD_EVENT(close_enter); | |
198 | DEFINE_SMB3_FD_EVENT(close_done); | |
35a2b533 | 199 | DEFINE_SMB3_FD_EVENT(oplock_not_found); |
f90f9797 | 200 | |
eccb4422 SF |
201 | DECLARE_EVENT_CLASS(smb3_fd_err_class, |
202 | TP_PROTO(unsigned int xid, | |
203 | __u64 fid, | |
204 | __u32 tid, | |
205 | __u64 sesid, | |
206 | int rc), | |
207 | TP_ARGS(xid, fid, tid, sesid, rc), | |
208 | TP_STRUCT__entry( | |
209 | __field(unsigned int, xid) | |
210 | __field(__u64, fid) | |
211 | __field(__u32, tid) | |
212 | __field(__u64, sesid) | |
213 | __field(int, rc) | |
214 | ), | |
215 | TP_fast_assign( | |
216 | __entry->xid = xid; | |
217 | __entry->fid = fid; | |
218 | __entry->tid = tid; | |
219 | __entry->sesid = sesid; | |
220 | __entry->rc = rc; | |
221 | ), | |
d683bcd3 SF |
222 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d", |
223 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
224 | __entry->rc) |
225 | ) | |
226 | ||
227 | #define DEFINE_SMB3_FD_ERR_EVENT(name) \ | |
228 | DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \ | |
229 | TP_PROTO(unsigned int xid, \ | |
230 | __u64 fid, \ | |
231 | __u32 tid, \ | |
232 | __u64 sesid, \ | |
233 | int rc), \ | |
234 | TP_ARGS(xid, fid, tid, sesid, rc)) | |
235 | ||
236 | DEFINE_SMB3_FD_ERR_EVENT(flush_err); | |
237 | DEFINE_SMB3_FD_ERR_EVENT(lock_err); | |
238 | DEFINE_SMB3_FD_ERR_EVENT(close_err); | |
239 | ||
240 | /* | |
241 | * For handle based query/set info calls | |
242 | */ | |
d42043a6 SF |
243 | DECLARE_EVENT_CLASS(smb3_inf_enter_class, |
244 | TP_PROTO(unsigned int xid, | |
245 | __u64 fid, | |
246 | __u32 tid, | |
247 | __u64 sesid, | |
248 | __u8 infclass, | |
249 | __u32 type), | |
250 | TP_ARGS(xid, fid, tid, sesid, infclass, type), | |
251 | TP_STRUCT__entry( | |
252 | __field(unsigned int, xid) | |
253 | __field(__u64, fid) | |
254 | __field(__u32, tid) | |
255 | __field(__u64, sesid) | |
256 | __field(__u8, infclass) | |
257 | __field(__u32, type) | |
258 | ), | |
259 | TP_fast_assign( | |
260 | __entry->xid = xid; | |
261 | __entry->fid = fid; | |
262 | __entry->tid = tid; | |
263 | __entry->sesid = sesid; | |
264 | __entry->infclass = infclass; | |
265 | __entry->type = type; | |
266 | ), | |
267 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x", | |
268 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
269 | __entry->infclass, __entry->type) | |
270 | ) | |
271 | ||
272 | #define DEFINE_SMB3_INF_ENTER_EVENT(name) \ | |
273 | DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \ | |
274 | TP_PROTO(unsigned int xid, \ | |
275 | __u64 fid, \ | |
276 | __u32 tid, \ | |
277 | __u64 sesid, \ | |
278 | __u8 infclass, \ | |
279 | __u32 type), \ | |
280 | TP_ARGS(xid, fid, tid, sesid, infclass, type)) | |
281 | ||
282 | DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter); | |
283 | DEFINE_SMB3_INF_ENTER_EVENT(query_info_done); | |
c3498185 SF |
284 | DEFINE_SMB3_INF_ENTER_EVENT(notify_enter); |
285 | DEFINE_SMB3_INF_ENTER_EVENT(notify_done); | |
d42043a6 | 286 | |
eccb4422 SF |
287 | DECLARE_EVENT_CLASS(smb3_inf_err_class, |
288 | TP_PROTO(unsigned int xid, | |
289 | __u64 fid, | |
290 | __u32 tid, | |
291 | __u64 sesid, | |
292 | __u8 infclass, | |
293 | __u32 type, | |
294 | int rc), | |
295 | TP_ARGS(xid, fid, tid, sesid, infclass, type, rc), | |
296 | TP_STRUCT__entry( | |
297 | __field(unsigned int, xid) | |
298 | __field(__u64, fid) | |
299 | __field(__u32, tid) | |
300 | __field(__u64, sesid) | |
301 | __field(__u8, infclass) | |
302 | __field(__u32, type) | |
303 | __field(int, rc) | |
304 | ), | |
305 | TP_fast_assign( | |
306 | __entry->xid = xid; | |
307 | __entry->fid = fid; | |
308 | __entry->tid = tid; | |
309 | __entry->sesid = sesid; | |
310 | __entry->infclass = infclass; | |
311 | __entry->type = type; | |
312 | __entry->rc = rc; | |
313 | ), | |
d683bcd3 SF |
314 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d", |
315 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
316 | __entry->infclass, __entry->type, __entry->rc) |
317 | ) | |
318 | ||
319 | #define DEFINE_SMB3_INF_ERR_EVENT(name) \ | |
320 | DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \ | |
321 | TP_PROTO(unsigned int xid, \ | |
322 | __u64 fid, \ | |
323 | __u32 tid, \ | |
324 | __u64 sesid, \ | |
325 | __u8 infclass, \ | |
326 | __u32 type, \ | |
327 | int rc), \ | |
328 | TP_ARGS(xid, fid, tid, sesid, infclass, type, rc)) | |
329 | ||
330 | DEFINE_SMB3_INF_ERR_EVENT(query_info_err); | |
331 | DEFINE_SMB3_INF_ERR_EVENT(set_info_err); | |
c3498185 | 332 | DEFINE_SMB3_INF_ERR_EVENT(notify_err); |
eccb4422 SF |
333 | DEFINE_SMB3_INF_ERR_EVENT(fsctl_err); |
334 | ||
8191576a SF |
335 | DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class, |
336 | TP_PROTO(unsigned int xid, | |
337 | __u32 tid, | |
338 | __u64 sesid, | |
339 | const char *full_path), | |
340 | TP_ARGS(xid, tid, sesid, full_path), | |
341 | TP_STRUCT__entry( | |
342 | __field(unsigned int, xid) | |
343 | __field(__u32, tid) | |
344 | __field(__u64, sesid) | |
345 | __string(path, full_path) | |
346 | ), | |
347 | TP_fast_assign( | |
348 | __entry->xid = xid; | |
349 | __entry->tid = tid; | |
350 | __entry->sesid = sesid; | |
351 | __assign_str(path, full_path); | |
352 | ), | |
353 | TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s", | |
354 | __entry->xid, __entry->sesid, __entry->tid, | |
355 | __get_str(path)) | |
356 | ) | |
357 | ||
358 | #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \ | |
359 | DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \ | |
360 | TP_PROTO(unsigned int xid, \ | |
361 | __u32 tid, \ | |
362 | __u64 sesid, \ | |
363 | const char *full_path), \ | |
364 | TP_ARGS(xid, tid, sesid, full_path)) | |
365 | ||
366 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter); | |
e4bd7c4a | 367 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter); |
8191576a SF |
368 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter); |
369 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter); | |
370 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter); | |
371 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter); | |
372 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter); | |
373 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter); | |
374 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter); | |
68e14569 | 375 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter); |
8191576a SF |
376 | |
377 | ||
378 | DECLARE_EVENT_CLASS(smb3_inf_compound_done_class, | |
379 | TP_PROTO(unsigned int xid, | |
380 | __u32 tid, | |
381 | __u64 sesid), | |
382 | TP_ARGS(xid, tid, sesid), | |
383 | TP_STRUCT__entry( | |
384 | __field(unsigned int, xid) | |
385 | __field(__u32, tid) | |
386 | __field(__u64, sesid) | |
387 | ), | |
388 | TP_fast_assign( | |
389 | __entry->xid = xid; | |
390 | __entry->tid = tid; | |
391 | __entry->sesid = sesid; | |
392 | ), | |
393 | TP_printk("xid=%u sid=0x%llx tid=0x%x", | |
394 | __entry->xid, __entry->sesid, __entry->tid) | |
395 | ) | |
396 | ||
397 | #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \ | |
398 | DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \ | |
399 | TP_PROTO(unsigned int xid, \ | |
400 | __u32 tid, \ | |
401 | __u64 sesid), \ | |
402 | TP_ARGS(xid, tid, sesid)) | |
403 | ||
404 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done); | |
e4bd7c4a | 405 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done); |
8191576a SF |
406 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done); |
407 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done); | |
408 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done); | |
409 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done); | |
410 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done); | |
411 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done); | |
412 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done); | |
68e14569 | 413 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done); |
8191576a SF |
414 | |
415 | ||
416 | DECLARE_EVENT_CLASS(smb3_inf_compound_err_class, | |
417 | TP_PROTO(unsigned int xid, | |
418 | __u32 tid, | |
419 | __u64 sesid, | |
420 | int rc), | |
421 | TP_ARGS(xid, tid, sesid, rc), | |
422 | TP_STRUCT__entry( | |
423 | __field(unsigned int, xid) | |
424 | __field(__u32, tid) | |
425 | __field(__u64, sesid) | |
426 | __field(int, rc) | |
427 | ), | |
428 | TP_fast_assign( | |
429 | __entry->xid = xid; | |
430 | __entry->tid = tid; | |
431 | __entry->sesid = sesid; | |
432 | __entry->rc = rc; | |
433 | ), | |
434 | TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d", | |
435 | __entry->xid, __entry->sesid, __entry->tid, | |
436 | __entry->rc) | |
437 | ) | |
438 | ||
439 | #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \ | |
440 | DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \ | |
441 | TP_PROTO(unsigned int xid, \ | |
442 | __u32 tid, \ | |
443 | __u64 sesid, \ | |
444 | int rc), \ | |
445 | TP_ARGS(xid, tid, sesid, rc)) | |
446 | ||
447 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err); | |
e4bd7c4a | 448 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err); |
8191576a SF |
449 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err); |
450 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err); | |
451 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err); | |
452 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err); | |
453 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err); | |
454 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err); | |
455 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err); | |
68e14569 | 456 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err); |
8191576a | 457 | |
eccb4422 SF |
458 | /* |
459 | * For logging SMB3 Status code and Command for responses which return errors | |
460 | */ | |
461 | DECLARE_EVENT_CLASS(smb3_cmd_err_class, | |
d683bcd3 | 462 | TP_PROTO(__u32 tid, |
eccb4422 SF |
463 | __u64 sesid, |
464 | __u16 cmd, | |
465 | __u64 mid, | |
466 | __u32 status, | |
467 | int rc), | |
d683bcd3 | 468 | TP_ARGS(tid, sesid, cmd, mid, status, rc), |
eccb4422 | 469 | TP_STRUCT__entry( |
eccb4422 SF |
470 | __field(__u32, tid) |
471 | __field(__u64, sesid) | |
472 | __field(__u16, cmd) | |
473 | __field(__u64, mid) | |
474 | __field(__u32, status) | |
475 | __field(int, rc) | |
476 | ), | |
477 | TP_fast_assign( | |
eccb4422 SF |
478 | __entry->tid = tid; |
479 | __entry->sesid = sesid; | |
480 | __entry->cmd = cmd; | |
481 | __entry->mid = mid; | |
482 | __entry->status = status; | |
483 | __entry->rc = rc; | |
484 | ), | |
d683bcd3 SF |
485 | TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d", |
486 | __entry->sesid, __entry->tid, __entry->cmd, __entry->mid, | |
487 | __entry->status, __entry->rc) | |
eccb4422 SF |
488 | ) |
489 | ||
490 | #define DEFINE_SMB3_CMD_ERR_EVENT(name) \ | |
491 | DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \ | |
d683bcd3 | 492 | TP_PROTO(__u32 tid, \ |
eccb4422 SF |
493 | __u64 sesid, \ |
494 | __u16 cmd, \ | |
495 | __u64 mid, \ | |
496 | __u32 status, \ | |
497 | int rc), \ | |
d683bcd3 | 498 | TP_ARGS(tid, sesid, cmd, mid, status, rc)) |
eccb4422 SF |
499 | |
500 | DEFINE_SMB3_CMD_ERR_EVENT(cmd_err); | |
501 | ||
502 | DECLARE_EVENT_CLASS(smb3_cmd_done_class, | |
d683bcd3 | 503 | TP_PROTO(__u32 tid, |
eccb4422 SF |
504 | __u64 sesid, |
505 | __u16 cmd, | |
506 | __u64 mid), | |
d683bcd3 | 507 | TP_ARGS(tid, sesid, cmd, mid), |
eccb4422 | 508 | TP_STRUCT__entry( |
eccb4422 SF |
509 | __field(__u32, tid) |
510 | __field(__u64, sesid) | |
511 | __field(__u16, cmd) | |
512 | __field(__u64, mid) | |
513 | ), | |
514 | TP_fast_assign( | |
eccb4422 SF |
515 | __entry->tid = tid; |
516 | __entry->sesid = sesid; | |
517 | __entry->cmd = cmd; | |
518 | __entry->mid = mid; | |
519 | ), | |
d683bcd3 SF |
520 | TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu", |
521 | __entry->sesid, __entry->tid, | |
eccb4422 SF |
522 | __entry->cmd, __entry->mid) |
523 | ) | |
524 | ||
525 | #define DEFINE_SMB3_CMD_DONE_EVENT(name) \ | |
526 | DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \ | |
d683bcd3 | 527 | TP_PROTO(__u32 tid, \ |
eccb4422 SF |
528 | __u64 sesid, \ |
529 | __u16 cmd, \ | |
530 | __u64 mid), \ | |
d683bcd3 | 531 | TP_ARGS(tid, sesid, cmd, mid)) |
eccb4422 | 532 | |
53a3e0d9 | 533 | DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter); |
eccb4422 | 534 | DEFINE_SMB3_CMD_DONE_EVENT(cmd_done); |
e68a932b | 535 | DEFINE_SMB3_CMD_DONE_EVENT(ses_expired); |
eccb4422 | 536 | |
020eec5f SF |
537 | DECLARE_EVENT_CLASS(smb3_mid_class, |
538 | TP_PROTO(__u16 cmd, | |
539 | __u64 mid, | |
540 | __u32 pid, | |
541 | unsigned long when_sent, | |
542 | unsigned long when_received), | |
543 | TP_ARGS(cmd, mid, pid, when_sent, when_received), | |
544 | TP_STRUCT__entry( | |
545 | __field(__u16, cmd) | |
546 | __field(__u64, mid) | |
547 | __field(__u32, pid) | |
548 | __field(unsigned long, when_sent) | |
549 | __field(unsigned long, when_received) | |
550 | ), | |
551 | TP_fast_assign( | |
552 | __entry->cmd = cmd; | |
553 | __entry->mid = mid; | |
554 | __entry->pid = pid; | |
555 | __entry->when_sent = when_sent; | |
556 | __entry->when_received = when_received; | |
557 | ), | |
558 | TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu", | |
559 | __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent, | |
560 | __entry->when_received) | |
561 | ) | |
562 | ||
563 | #define DEFINE_SMB3_MID_EVENT(name) \ | |
564 | DEFINE_EVENT(smb3_mid_class, smb3_##name, \ | |
565 | TP_PROTO(__u16 cmd, \ | |
566 | __u64 mid, \ | |
567 | __u32 pid, \ | |
568 | unsigned long when_sent, \ | |
569 | unsigned long when_received), \ | |
570 | TP_ARGS(cmd, mid, pid, when_sent, when_received)) | |
571 | ||
572 | DEFINE_SMB3_MID_EVENT(slow_rsp); | |
573 | ||
d683bcd3 SF |
574 | DECLARE_EVENT_CLASS(smb3_exit_err_class, |
575 | TP_PROTO(unsigned int xid, | |
576 | const char *func_name, | |
577 | int rc), | |
578 | TP_ARGS(xid, func_name, rc), | |
579 | TP_STRUCT__entry( | |
580 | __field(unsigned int, xid) | |
eb068818 | 581 | __string(func_name, func_name) |
d683bcd3 SF |
582 | __field(int, rc) |
583 | ), | |
584 | TP_fast_assign( | |
585 | __entry->xid = xid; | |
eb068818 | 586 | __assign_str(func_name, func_name); |
d683bcd3 SF |
587 | __entry->rc = rc; |
588 | ), | |
589 | TP_printk("\t%s: xid=%u rc=%d", | |
eb068818 | 590 | __get_str(func_name), __entry->xid, __entry->rc) |
d683bcd3 SF |
591 | ) |
592 | ||
593 | #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \ | |
594 | DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \ | |
595 | TP_PROTO(unsigned int xid, \ | |
596 | const char *func_name, \ | |
597 | int rc), \ | |
598 | TP_ARGS(xid, func_name, rc)) | |
599 | ||
600 | DEFINE_SMB3_EXIT_ERR_EVENT(exit_err); | |
601 | ||
f2bf09e9 SF |
602 | |
603 | DECLARE_EVENT_CLASS(smb3_sync_err_class, | |
604 | TP_PROTO(unsigned long ino, | |
605 | int rc), | |
606 | TP_ARGS(ino, rc), | |
607 | TP_STRUCT__entry( | |
608 | __field(unsigned long, ino) | |
609 | __field(int, rc) | |
610 | ), | |
611 | TP_fast_assign( | |
612 | __entry->ino = ino; | |
613 | __entry->rc = rc; | |
614 | ), | |
615 | TP_printk("\tino=%lu rc=%d", | |
616 | __entry->ino, __entry->rc) | |
617 | ) | |
618 | ||
619 | #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \ | |
620 | DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \ | |
621 | TP_PROTO(unsigned long ino, \ | |
622 | int rc), \ | |
623 | TP_ARGS(ino, rc)) | |
624 | ||
625 | DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err); | |
626 | DEFINE_SMB3_SYNC_ERR_EVENT(flush_err); | |
627 | ||
628 | ||
d683bcd3 SF |
629 | DECLARE_EVENT_CLASS(smb3_enter_exit_class, |
630 | TP_PROTO(unsigned int xid, | |
631 | const char *func_name), | |
632 | TP_ARGS(xid, func_name), | |
633 | TP_STRUCT__entry( | |
634 | __field(unsigned int, xid) | |
eb068818 | 635 | __string(func_name, func_name) |
d683bcd3 SF |
636 | ), |
637 | TP_fast_assign( | |
638 | __entry->xid = xid; | |
eb068818 | 639 | __assign_str(func_name, func_name); |
d683bcd3 SF |
640 | ), |
641 | TP_printk("\t%s: xid=%u", | |
eb068818 | 642 | __get_str(func_name), __entry->xid) |
d683bcd3 SF |
643 | ) |
644 | ||
645 | #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \ | |
646 | DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \ | |
647 | TP_PROTO(unsigned int xid, \ | |
648 | const char *func_name), \ | |
649 | TP_ARGS(xid, func_name)) | |
650 | ||
651 | DEFINE_SMB3_ENTER_EXIT_EVENT(enter); | |
652 | DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done); | |
653 | ||
f8af49dd SF |
654 | /* |
655 | * For SMB2/SMB3 tree connect | |
656 | */ | |
657 | ||
658 | DECLARE_EVENT_CLASS(smb3_tcon_class, | |
659 | TP_PROTO(unsigned int xid, | |
660 | __u32 tid, | |
661 | __u64 sesid, | |
662 | const char *unc_name, | |
663 | int rc), | |
664 | TP_ARGS(xid, tid, sesid, unc_name, rc), | |
665 | TP_STRUCT__entry( | |
666 | __field(unsigned int, xid) | |
667 | __field(__u32, tid) | |
668 | __field(__u64, sesid) | |
68ddb496 | 669 | __string(name, unc_name) |
f8af49dd SF |
670 | __field(int, rc) |
671 | ), | |
672 | TP_fast_assign( | |
673 | __entry->xid = xid; | |
674 | __entry->tid = tid; | |
675 | __entry->sesid = sesid; | |
68ddb496 | 676 | __assign_str(name, unc_name); |
f8af49dd SF |
677 | __entry->rc = rc; |
678 | ), | |
679 | TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d", | |
680 | __entry->xid, __entry->sesid, __entry->tid, | |
68ddb496 | 681 | __get_str(name), __entry->rc) |
f8af49dd SF |
682 | ) |
683 | ||
684 | #define DEFINE_SMB3_TCON_EVENT(name) \ | |
685 | DEFINE_EVENT(smb3_tcon_class, smb3_##name, \ | |
686 | TP_PROTO(unsigned int xid, \ | |
687 | __u32 tid, \ | |
688 | __u64 sesid, \ | |
689 | const char *unc_name, \ | |
690 | int rc), \ | |
691 | TP_ARGS(xid, tid, sesid, unc_name, rc)) | |
692 | ||
693 | DEFINE_SMB3_TCON_EVENT(tcon); | |
694 | ||
695 | ||
28d59363 | 696 | /* |
efe2e9f3 | 697 | * For smb2/smb3 open (including create and mkdir) calls |
28d59363 | 698 | */ |
efe2e9f3 SF |
699 | |
700 | DECLARE_EVENT_CLASS(smb3_open_enter_class, | |
701 | TP_PROTO(unsigned int xid, | |
702 | __u32 tid, | |
703 | __u64 sesid, | |
704 | int create_options, | |
705 | int desired_access), | |
706 | TP_ARGS(xid, tid, sesid, create_options, desired_access), | |
707 | TP_STRUCT__entry( | |
708 | __field(unsigned int, xid) | |
709 | __field(__u32, tid) | |
710 | __field(__u64, sesid) | |
711 | __field(int, create_options) | |
712 | __field(int, desired_access) | |
713 | ), | |
714 | TP_fast_assign( | |
715 | __entry->xid = xid; | |
716 | __entry->tid = tid; | |
717 | __entry->sesid = sesid; | |
718 | __entry->create_options = create_options; | |
719 | __entry->desired_access = desired_access; | |
720 | ), | |
721 | TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x", | |
722 | __entry->xid, __entry->sesid, __entry->tid, | |
723 | __entry->create_options, __entry->desired_access) | |
724 | ) | |
725 | ||
726 | #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \ | |
727 | DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \ | |
728 | TP_PROTO(unsigned int xid, \ | |
729 | __u32 tid, \ | |
730 | __u64 sesid, \ | |
731 | int create_options, \ | |
732 | int desired_access), \ | |
733 | TP_ARGS(xid, tid, sesid, create_options, desired_access)) | |
734 | ||
735 | DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter); | |
736 | DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter); | |
737 | ||
28d59363 SF |
738 | DECLARE_EVENT_CLASS(smb3_open_err_class, |
739 | TP_PROTO(unsigned int xid, | |
740 | __u32 tid, | |
741 | __u64 sesid, | |
742 | int create_options, | |
743 | int desired_access, | |
744 | int rc), | |
745 | TP_ARGS(xid, tid, sesid, create_options, desired_access, rc), | |
746 | TP_STRUCT__entry( | |
747 | __field(unsigned int, xid) | |
748 | __field(__u32, tid) | |
749 | __field(__u64, sesid) | |
750 | __field(int, create_options) | |
751 | __field(int, desired_access) | |
752 | __field(int, rc) | |
753 | ), | |
754 | TP_fast_assign( | |
755 | __entry->xid = xid; | |
756 | __entry->tid = tid; | |
757 | __entry->sesid = sesid; | |
758 | __entry->create_options = create_options; | |
759 | __entry->desired_access = desired_access; | |
760 | __entry->rc = rc; | |
761 | ), | |
762 | TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d", | |
763 | __entry->xid, __entry->sesid, __entry->tid, | |
764 | __entry->create_options, __entry->desired_access, __entry->rc) | |
765 | ) | |
766 | ||
767 | #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \ | |
768 | DEFINE_EVENT(smb3_open_err_class, smb3_##name, \ | |
769 | TP_PROTO(unsigned int xid, \ | |
770 | __u32 tid, \ | |
771 | __u64 sesid, \ | |
772 | int create_options, \ | |
773 | int desired_access, \ | |
774 | int rc), \ | |
775 | TP_ARGS(xid, tid, sesid, create_options, desired_access, rc)) | |
776 | ||
777 | DEFINE_SMB3_OPEN_ERR_EVENT(open_err); | |
bea851b8 | 778 | DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err); |
28d59363 SF |
779 | |
780 | DECLARE_EVENT_CLASS(smb3_open_done_class, | |
781 | TP_PROTO(unsigned int xid, | |
782 | __u64 fid, | |
783 | __u32 tid, | |
784 | __u64 sesid, | |
785 | int create_options, | |
786 | int desired_access), | |
787 | TP_ARGS(xid, fid, tid, sesid, create_options, desired_access), | |
788 | TP_STRUCT__entry( | |
789 | __field(unsigned int, xid) | |
790 | __field(__u64, fid) | |
791 | __field(__u32, tid) | |
792 | __field(__u64, sesid) | |
793 | __field(int, create_options) | |
794 | __field(int, desired_access) | |
795 | ), | |
796 | TP_fast_assign( | |
797 | __entry->xid = xid; | |
798 | __entry->fid = fid; | |
799 | __entry->tid = tid; | |
800 | __entry->sesid = sesid; | |
801 | __entry->create_options = create_options; | |
802 | __entry->desired_access = desired_access; | |
803 | ), | |
804 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x", | |
805 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
806 | __entry->create_options, __entry->desired_access) | |
807 | ) | |
808 | ||
809 | #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \ | |
810 | DEFINE_EVENT(smb3_open_done_class, smb3_##name, \ | |
811 | TP_PROTO(unsigned int xid, \ | |
812 | __u64 fid, \ | |
813 | __u32 tid, \ | |
814 | __u64 sesid, \ | |
815 | int create_options, \ | |
816 | int desired_access), \ | |
817 | TP_ARGS(xid, fid, tid, sesid, create_options, desired_access)) | |
818 | ||
819 | DEFINE_SMB3_OPEN_DONE_EVENT(open_done); | |
bea851b8 | 820 | DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done); |
28d59363 | 821 | |
179e44d4 SF |
822 | |
823 | DECLARE_EVENT_CLASS(smb3_lease_done_class, | |
824 | TP_PROTO(__u32 lease_state, | |
825 | __u32 tid, | |
826 | __u64 sesid, | |
827 | __u64 lease_key_low, | |
828 | __u64 lease_key_high), | |
829 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high), | |
830 | TP_STRUCT__entry( | |
831 | __field(__u32, lease_state) | |
832 | __field(__u32, tid) | |
833 | __field(__u64, sesid) | |
834 | __field(__u64, lease_key_low) | |
835 | __field(__u64, lease_key_high) | |
836 | ), | |
837 | TP_fast_assign( | |
838 | __entry->lease_state = lease_state; | |
839 | __entry->tid = tid; | |
840 | __entry->sesid = sesid; | |
841 | __entry->lease_key_low = lease_key_low; | |
842 | __entry->lease_key_high = lease_key_high; | |
843 | ), | |
844 | TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x", | |
845 | __entry->sesid, __entry->tid, __entry->lease_key_high, | |
846 | __entry->lease_key_low, __entry->lease_state) | |
847 | ) | |
848 | ||
849 | #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \ | |
850 | DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \ | |
851 | TP_PROTO(__u32 lease_state, \ | |
852 | __u32 tid, \ | |
853 | __u64 sesid, \ | |
854 | __u64 lease_key_low, \ | |
855 | __u64 lease_key_high), \ | |
856 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high)) | |
857 | ||
858 | DEFINE_SMB3_LEASE_DONE_EVENT(lease_done); | |
fb253d5b | 859 | DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found); |
179e44d4 SF |
860 | |
861 | DECLARE_EVENT_CLASS(smb3_lease_err_class, | |
862 | TP_PROTO(__u32 lease_state, | |
863 | __u32 tid, | |
864 | __u64 sesid, | |
865 | __u64 lease_key_low, | |
866 | __u64 lease_key_high, | |
867 | int rc), | |
868 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc), | |
869 | TP_STRUCT__entry( | |
870 | __field(__u32, lease_state) | |
871 | __field(__u32, tid) | |
872 | __field(__u64, sesid) | |
873 | __field(__u64, lease_key_low) | |
874 | __field(__u64, lease_key_high) | |
875 | __field(int, rc) | |
876 | ), | |
877 | TP_fast_assign( | |
878 | __entry->lease_state = lease_state; | |
879 | __entry->tid = tid; | |
880 | __entry->sesid = sesid; | |
881 | __entry->lease_key_low = lease_key_low; | |
882 | __entry->lease_key_high = lease_key_high; | |
883 | __entry->rc = rc; | |
884 | ), | |
885 | TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d", | |
886 | __entry->sesid, __entry->tid, __entry->lease_key_high, | |
887 | __entry->lease_key_low, __entry->lease_state, __entry->rc) | |
888 | ) | |
889 | ||
890 | #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \ | |
891 | DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \ | |
892 | TP_PROTO(__u32 lease_state, \ | |
893 | __u32 tid, \ | |
894 | __u64 sesid, \ | |
895 | __u64 lease_key_low, \ | |
896 | __u64 lease_key_high, \ | |
897 | int rc), \ | |
898 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc)) | |
899 | ||
900 | DEFINE_SMB3_LEASE_ERR_EVENT(lease_err); | |
901 | ||
d7171cd1 SF |
902 | DECLARE_EVENT_CLASS(smb3_connect_class, |
903 | TP_PROTO(char *hostname, | |
904 | __u64 conn_id, | |
905 | const struct __kernel_sockaddr_storage *dst_addr), | |
906 | TP_ARGS(hostname, conn_id, dst_addr), | |
907 | TP_STRUCT__entry( | |
908 | __string(hostname, hostname) | |
909 | __field(__u64, conn_id) | |
910 | __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) | |
911 | ), | |
912 | TP_fast_assign( | |
913 | struct sockaddr_storage *pss = NULL; | |
914 | ||
915 | __entry->conn_id = conn_id; | |
916 | pss = (struct sockaddr_storage *)__entry->dst_addr; | |
917 | *pss = *dst_addr; | |
918 | __assign_str(hostname, hostname); | |
919 | ), | |
920 | TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc", | |
921 | __entry->conn_id, | |
922 | __get_str(hostname), | |
923 | __entry->dst_addr) | |
924 | ) | |
925 | ||
926 | #define DEFINE_SMB3_CONNECT_EVENT(name) \ | |
927 | DEFINE_EVENT(smb3_connect_class, smb3_##name, \ | |
928 | TP_PROTO(char *hostname, \ | |
929 | __u64 conn_id, \ | |
930 | const struct __kernel_sockaddr_storage *addr), \ | |
931 | TP_ARGS(hostname, conn_id, addr)) | |
932 | ||
933 | DEFINE_SMB3_CONNECT_EVENT(connect_done); | |
934 | ||
935 | DECLARE_EVENT_CLASS(smb3_connect_err_class, | |
936 | TP_PROTO(char *hostname, __u64 conn_id, | |
937 | const struct __kernel_sockaddr_storage *dst_addr, int rc), | |
938 | TP_ARGS(hostname, conn_id, dst_addr, rc), | |
939 | TP_STRUCT__entry( | |
940 | __string(hostname, hostname) | |
941 | __field(__u64, conn_id) | |
942 | __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) | |
943 | __field(int, rc) | |
944 | ), | |
945 | TP_fast_assign( | |
946 | struct sockaddr_storage *pss = NULL; | |
947 | ||
948 | __entry->conn_id = conn_id; | |
949 | __entry->rc = rc; | |
950 | pss = (struct sockaddr_storage *)__entry->dst_addr; | |
951 | *pss = *dst_addr; | |
952 | __assign_str(hostname, hostname); | |
953 | ), | |
954 | TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc", | |
955 | __entry->rc, | |
956 | __entry->conn_id, | |
957 | __get_str(hostname), | |
958 | __entry->dst_addr) | |
959 | ) | |
960 | ||
961 | #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \ | |
962 | DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \ | |
963 | TP_PROTO(char *hostname, \ | |
964 | __u64 conn_id, \ | |
965 | const struct __kernel_sockaddr_storage *addr, \ | |
966 | int rc), \ | |
967 | TP_ARGS(hostname, conn_id, addr, rc)) | |
968 | ||
969 | DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err); | |
970 | ||
bf1fdeb7 SF |
971 | DECLARE_EVENT_CLASS(smb3_reconnect_class, |
972 | TP_PROTO(__u64 currmid, | |
6d82c27a | 973 | __u64 conn_id, |
bf1fdeb7 | 974 | char *hostname), |
6d82c27a | 975 | TP_ARGS(currmid, conn_id, hostname), |
bf1fdeb7 SF |
976 | TP_STRUCT__entry( |
977 | __field(__u64, currmid) | |
6d82c27a | 978 | __field(__u64, conn_id) |
eb068818 | 979 | __string(hostname, hostname) |
bf1fdeb7 SF |
980 | ), |
981 | TP_fast_assign( | |
982 | __entry->currmid = currmid; | |
6d82c27a | 983 | __entry->conn_id = conn_id; |
eb068818 | 984 | __assign_str(hostname, hostname); |
bf1fdeb7 | 985 | ), |
6d82c27a SP |
986 | TP_printk("conn_id=0x%llx server=%s current_mid=%llu", |
987 | __entry->conn_id, | |
eb068818 | 988 | __get_str(hostname), |
bf1fdeb7 SF |
989 | __entry->currmid) |
990 | ) | |
991 | ||
992 | #define DEFINE_SMB3_RECONNECT_EVENT(name) \ | |
993 | DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \ | |
994 | TP_PROTO(__u64 currmid, \ | |
6d82c27a SP |
995 | __u64 conn_id, \ |
996 | char *hostname), \ | |
997 | TP_ARGS(currmid, conn_id, hostname)) | |
bf1fdeb7 SF |
998 | |
999 | DEFINE_SMB3_RECONNECT_EVENT(reconnect); | |
1000 | DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect); | |
1001 | ||
b340a4d4 SF |
1002 | DECLARE_EVENT_CLASS(smb3_credit_class, |
1003 | TP_PROTO(__u64 currmid, | |
6d82c27a | 1004 | __u64 conn_id, |
b340a4d4 | 1005 | char *hostname, |
9eec21bf | 1006 | int credits, |
6d82c27a SP |
1007 | int credits_to_add, |
1008 | int in_flight), | |
1009 | TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight), | |
b340a4d4 SF |
1010 | TP_STRUCT__entry( |
1011 | __field(__u64, currmid) | |
6d82c27a | 1012 | __field(__u64, conn_id) |
eb068818 | 1013 | __string(hostname, hostname) |
b340a4d4 | 1014 | __field(int, credits) |
9eec21bf | 1015 | __field(int, credits_to_add) |
6d82c27a | 1016 | __field(int, in_flight) |
b340a4d4 SF |
1017 | ), |
1018 | TP_fast_assign( | |
1019 | __entry->currmid = currmid; | |
6d82c27a | 1020 | __entry->conn_id = conn_id; |
eb068818 | 1021 | __assign_str(hostname, hostname); |
b340a4d4 | 1022 | __entry->credits = credits; |
9eec21bf | 1023 | __entry->credits_to_add = credits_to_add; |
6d82c27a | 1024 | __entry->in_flight = in_flight; |
b340a4d4 | 1025 | ), |
6d82c27a SP |
1026 | TP_printk("conn_id=0x%llx server=%s current_mid=%llu " |
1027 | "credits=%d credit_change=%d in_flight=%d", | |
1028 | __entry->conn_id, | |
eb068818 | 1029 | __get_str(hostname), |
b340a4d4 | 1030 | __entry->currmid, |
9eec21bf | 1031 | __entry->credits, |
6d82c27a SP |
1032 | __entry->credits_to_add, |
1033 | __entry->in_flight) | |
b340a4d4 SF |
1034 | ) |
1035 | ||
1036 | #define DEFINE_SMB3_CREDIT_EVENT(name) \ | |
1037 | DEFINE_EVENT(smb3_credit_class, smb3_##name, \ | |
1038 | TP_PROTO(__u64 currmid, \ | |
6d82c27a | 1039 | __u64 conn_id, \ |
b340a4d4 | 1040 | char *hostname, \ |
9eec21bf | 1041 | int credits, \ |
6d82c27a SP |
1042 | int credits_to_add, \ |
1043 | int in_flight), \ | |
1044 | TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight)) | |
b340a4d4 SF |
1045 | |
1046 | DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits); | |
cd7b699b | 1047 | DEFINE_SMB3_CREDIT_EVENT(reconnect_detected); |
7937ca96 | 1048 | DEFINE_SMB3_CREDIT_EVENT(credit_timeout); |
cd7b699b SP |
1049 | DEFINE_SMB3_CREDIT_EVENT(insufficient_credits); |
1050 | DEFINE_SMB3_CREDIT_EVENT(too_many_credits); | |
9eec21bf | 1051 | DEFINE_SMB3_CREDIT_EVENT(add_credits); |
1ddff774 DH |
1052 | DEFINE_SMB3_CREDIT_EVENT(adj_credits); |
1053 | DEFINE_SMB3_CREDIT_EVENT(hdr_credits); | |
1054 | DEFINE_SMB3_CREDIT_EVENT(nblk_credits); | |
1055 | DEFINE_SMB3_CREDIT_EVENT(pend_credits); | |
1056 | DEFINE_SMB3_CREDIT_EVENT(wait_credits); | |
1057 | DEFINE_SMB3_CREDIT_EVENT(waitff_credits); | |
1058 | DEFINE_SMB3_CREDIT_EVENT(overflow_credits); | |
cd7b699b | 1059 | DEFINE_SMB3_CREDIT_EVENT(set_credits); |
b340a4d4 | 1060 | |
eccb4422 SF |
1061 | #endif /* _CIFS_TRACE_H */ |
1062 | ||
1063 | #undef TRACE_INCLUDE_PATH | |
1064 | #define TRACE_INCLUDE_PATH . | |
1065 | #define TRACE_INCLUDE_FILE trace | |
1066 | #include <trace/define_trace.h> |