Merge tag 'timers_urgent_for_v6.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel...
[drm/drm-misc.git] / fs / smb / client / trace.h
blob12cbd3428a6da591f06454161da2a4dd1205c703
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Copyright (C) 2018, Microsoft Corporation.
5 * Author(s): Steve French <stfrench@microsoft.com>
7 * Please use this 3-part article as a reference for writing new tracepoints:
8 * https://lwn.net/Articles/379903/
9 */
10 #undef TRACE_SYSTEM
11 #define TRACE_SYSTEM cifs
13 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
14 #define _CIFS_TRACE_H
16 #include <linux/tracepoint.h>
17 #include <linux/net.h>
18 #include <linux/inet.h>
21 * Specify enums for tracing information.
23 #define smb3_rw_credits_traces \
24 EM(cifs_trace_rw_credits_call_readv_adjust, "rd-call-adj") \
25 EM(cifs_trace_rw_credits_call_writev_adjust, "wr-call-adj") \
26 EM(cifs_trace_rw_credits_free_subreq, "free-subreq") \
27 EM(cifs_trace_rw_credits_issue_read_adjust, "rd-issu-adj") \
28 EM(cifs_trace_rw_credits_issue_write_adjust, "wr-issu-adj") \
29 EM(cifs_trace_rw_credits_no_adjust_up, "no-adj-up ") \
30 EM(cifs_trace_rw_credits_old_session, "old-session") \
31 EM(cifs_trace_rw_credits_read_response_add, "rd-resp-add") \
32 EM(cifs_trace_rw_credits_read_response_clear, "rd-resp-clr") \
33 EM(cifs_trace_rw_credits_read_resubmit, "rd-resubmit") \
34 EM(cifs_trace_rw_credits_read_submit, "rd-submit ") \
35 EM(cifs_trace_rw_credits_write_prepare, "wr-prepare ") \
36 EM(cifs_trace_rw_credits_write_response_add, "wr-resp-add") \
37 EM(cifs_trace_rw_credits_write_response_clear, "wr-resp-clr") \
38 E_(cifs_trace_rw_credits_zero_in_flight, "ZERO-IN-FLT")
40 #define smb3_tcon_ref_traces \
41 EM(netfs_trace_tcon_ref_dec_dfs_refer, "DEC DfsRef") \
42 EM(netfs_trace_tcon_ref_free, "FRE ") \
43 EM(netfs_trace_tcon_ref_free_fail, "FRE Fail ") \
44 EM(netfs_trace_tcon_ref_free_ipc, "FRE Ipc ") \
45 EM(netfs_trace_tcon_ref_free_ipc_fail, "FRE Ipc-F ") \
46 EM(netfs_trace_tcon_ref_free_reconnect_server, "FRE Reconn") \
47 EM(netfs_trace_tcon_ref_get_cached_laundromat, "GET Ch-Lau") \
48 EM(netfs_trace_tcon_ref_get_cached_lease_break, "GET Ch-Lea") \
49 EM(netfs_trace_tcon_ref_get_cancelled_close, "GET Cn-Cls") \
50 EM(netfs_trace_tcon_ref_get_dfs_refer, "GET DfsRef") \
51 EM(netfs_trace_tcon_ref_get_find, "GET Find ") \
52 EM(netfs_trace_tcon_ref_get_find_sess_tcon, "GET FndSes") \
53 EM(netfs_trace_tcon_ref_get_reconnect_server, "GET Reconn") \
54 EM(netfs_trace_tcon_ref_new, "NEW ") \
55 EM(netfs_trace_tcon_ref_new_ipc, "NEW Ipc ") \
56 EM(netfs_trace_tcon_ref_new_reconnect_server, "NEW Reconn") \
57 EM(netfs_trace_tcon_ref_put_cached_close, "PUT Ch-Cls") \
58 EM(netfs_trace_tcon_ref_put_cancelled_close, "PUT Cn-Cls") \
59 EM(netfs_trace_tcon_ref_put_cancelled_close_fid, "PUT Cn-Fid") \
60 EM(netfs_trace_tcon_ref_put_cancelled_mid, "PUT Cn-Mid") \
61 EM(netfs_trace_tcon_ref_put_mnt_ctx, "PUT MntCtx") \
62 EM(netfs_trace_tcon_ref_put_reconnect_server, "PUT Reconn") \
63 EM(netfs_trace_tcon_ref_put_tlink, "PUT Tlink ") \
64 EM(netfs_trace_tcon_ref_see_cancelled_close, "SEE Cn-Cls") \
65 EM(netfs_trace_tcon_ref_see_fscache_collision, "SEE FV-CO!") \
66 EM(netfs_trace_tcon_ref_see_fscache_okay, "SEE FV-Ok ") \
67 EM(netfs_trace_tcon_ref_see_fscache_relinq, "SEE FV-Rlq") \
68 E_(netfs_trace_tcon_ref_see_umount, "SEE Umount")
70 #undef EM
71 #undef E_
74 * Define those tracing enums.
76 #ifndef __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY
77 #define __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY
79 #define EM(a, b) a,
80 #define E_(a, b) a
82 enum smb3_rw_credits_trace { smb3_rw_credits_traces } __mode(byte);
83 enum smb3_tcon_ref_trace { smb3_tcon_ref_traces } __mode(byte);
85 #undef EM
86 #undef E_
87 #endif
90 * Export enum symbols via userspace.
92 #define EM(a, b) TRACE_DEFINE_ENUM(a);
93 #define E_(a, b) TRACE_DEFINE_ENUM(a);
95 smb3_rw_credits_traces;
96 smb3_tcon_ref_traces;
98 #undef EM
99 #undef E_
102 * Now redefine the EM() and E_() macros to map the enums to the strings that
103 * will be printed in the output.
105 #define EM(a, b) { a, b },
106 #define E_(a, b) { a, b }
108 /* For logging errors in read or write */
109 DECLARE_EVENT_CLASS(smb3_rw_err_class,
110 TP_PROTO(unsigned int rreq_debug_id,
111 unsigned int rreq_debug_index,
112 unsigned int xid,
113 __u64 fid,
114 __u32 tid,
115 __u64 sesid,
116 __u64 offset,
117 __u32 len,
118 int rc),
119 TP_ARGS(rreq_debug_id, rreq_debug_index,
120 xid, fid, tid, sesid, offset, len, rc),
121 TP_STRUCT__entry(
122 __field(unsigned int, rreq_debug_id)
123 __field(unsigned int, rreq_debug_index)
124 __field(unsigned int, xid)
125 __field(__u64, fid)
126 __field(__u32, tid)
127 __field(__u64, sesid)
128 __field(__u64, offset)
129 __field(__u32, len)
130 __field(int, rc)
132 TP_fast_assign(
133 __entry->rreq_debug_id = rreq_debug_id;
134 __entry->rreq_debug_index = rreq_debug_index;
135 __entry->xid = xid;
136 __entry->fid = fid;
137 __entry->tid = tid;
138 __entry->sesid = sesid;
139 __entry->offset = offset;
140 __entry->len = len;
141 __entry->rc = rc;
143 TP_printk("\tR=%08x[%x] xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
144 __entry->rreq_debug_id, __entry->rreq_debug_index,
145 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
146 __entry->offset, __entry->len, __entry->rc)
149 #define DEFINE_SMB3_RW_ERR_EVENT(name) \
150 DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \
151 TP_PROTO(unsigned int rreq_debug_id, \
152 unsigned int rreq_debug_index, \
153 unsigned int xid, \
154 __u64 fid, \
155 __u32 tid, \
156 __u64 sesid, \
157 __u64 offset, \
158 __u32 len, \
159 int rc), \
160 TP_ARGS(rreq_debug_id, rreq_debug_index, xid, fid, tid, sesid, offset, len, rc))
162 DEFINE_SMB3_RW_ERR_EVENT(read_err);
163 DEFINE_SMB3_RW_ERR_EVENT(write_err);
165 /* For logging errors in other file I/O ops */
166 DECLARE_EVENT_CLASS(smb3_other_err_class,
167 TP_PROTO(unsigned int xid,
168 __u64 fid,
169 __u32 tid,
170 __u64 sesid,
171 __u64 offset,
172 __u32 len,
173 int rc),
174 TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
175 TP_STRUCT__entry(
176 __field(unsigned int, xid)
177 __field(__u64, fid)
178 __field(__u32, tid)
179 __field(__u64, sesid)
180 __field(__u64, offset)
181 __field(__u32, len)
182 __field(int, rc)
184 TP_fast_assign(
185 __entry->xid = xid;
186 __entry->fid = fid;
187 __entry->tid = tid;
188 __entry->sesid = sesid;
189 __entry->offset = offset;
190 __entry->len = len;
191 __entry->rc = rc;
193 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
194 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
195 __entry->offset, __entry->len, __entry->rc)
198 #define DEFINE_SMB3_OTHER_ERR_EVENT(name) \
199 DEFINE_EVENT(smb3_other_err_class, smb3_##name, \
200 TP_PROTO(unsigned int xid, \
201 __u64 fid, \
202 __u32 tid, \
203 __u64 sesid, \
204 __u64 offset, \
205 __u32 len, \
206 int rc), \
207 TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
209 DEFINE_SMB3_OTHER_ERR_EVENT(query_dir_err);
210 DEFINE_SMB3_OTHER_ERR_EVENT(zero_err);
211 DEFINE_SMB3_OTHER_ERR_EVENT(falloc_err);
214 * For logging errors in reflink and copy_range ops e.g. smb2_copychunk_range
215 * and smb2_duplicate_extents
217 DECLARE_EVENT_CLASS(smb3_copy_range_err_class,
218 TP_PROTO(unsigned int xid,
219 __u64 src_fid,
220 __u64 target_fid,
221 __u32 tid,
222 __u64 sesid,
223 __u64 src_offset,
224 __u64 target_offset,
225 __u32 len,
226 int rc),
227 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len, rc),
228 TP_STRUCT__entry(
229 __field(unsigned int, xid)
230 __field(__u64, src_fid)
231 __field(__u64, target_fid)
232 __field(__u32, tid)
233 __field(__u64, sesid)
234 __field(__u64, src_offset)
235 __field(__u64, target_offset)
236 __field(__u32, len)
237 __field(int, rc)
239 TP_fast_assign(
240 __entry->xid = xid;
241 __entry->src_fid = src_fid;
242 __entry->target_fid = target_fid;
243 __entry->tid = tid;
244 __entry->sesid = sesid;
245 __entry->src_offset = src_offset;
246 __entry->target_offset = target_offset;
247 __entry->len = len;
248 __entry->rc = rc;
250 TP_printk("\txid=%u sid=0x%llx tid=0x%x source fid=0x%llx source offset=0x%llx target fid=0x%llx target offset=0x%llx len=0x%x rc=%d",
251 __entry->xid, __entry->sesid, __entry->tid, __entry->target_fid,
252 __entry->src_offset, __entry->target_fid, __entry->target_offset, __entry->len, __entry->rc)
255 #define DEFINE_SMB3_COPY_RANGE_ERR_EVENT(name) \
256 DEFINE_EVENT(smb3_copy_range_err_class, smb3_##name, \
257 TP_PROTO(unsigned int xid, \
258 __u64 src_fid, \
259 __u64 target_fid, \
260 __u32 tid, \
261 __u64 sesid, \
262 __u64 src_offset, \
263 __u64 target_offset, \
264 __u32 len, \
265 int rc), \
266 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len, rc))
268 DEFINE_SMB3_COPY_RANGE_ERR_EVENT(clone_err);
269 /* TODO: Add SMB3_COPY_RANGE_ERR_EVENT(copychunk_err) */
271 DECLARE_EVENT_CLASS(smb3_copy_range_done_class,
272 TP_PROTO(unsigned int xid,
273 __u64 src_fid,
274 __u64 target_fid,
275 __u32 tid,
276 __u64 sesid,
277 __u64 src_offset,
278 __u64 target_offset,
279 __u32 len),
280 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len),
281 TP_STRUCT__entry(
282 __field(unsigned int, xid)
283 __field(__u64, src_fid)
284 __field(__u64, target_fid)
285 __field(__u32, tid)
286 __field(__u64, sesid)
287 __field(__u64, src_offset)
288 __field(__u64, target_offset)
289 __field(__u32, len)
291 TP_fast_assign(
292 __entry->xid = xid;
293 __entry->src_fid = src_fid;
294 __entry->target_fid = target_fid;
295 __entry->tid = tid;
296 __entry->sesid = sesid;
297 __entry->src_offset = src_offset;
298 __entry->target_offset = target_offset;
299 __entry->len = len;
301 TP_printk("\txid=%u sid=0x%llx tid=0x%x source fid=0x%llx source offset=0x%llx target fid=0x%llx target offset=0x%llx len=0x%x",
302 __entry->xid, __entry->sesid, __entry->tid, __entry->target_fid,
303 __entry->src_offset, __entry->target_fid, __entry->target_offset, __entry->len)
306 #define DEFINE_SMB3_COPY_RANGE_DONE_EVENT(name) \
307 DEFINE_EVENT(smb3_copy_range_done_class, smb3_##name, \
308 TP_PROTO(unsigned int xid, \
309 __u64 src_fid, \
310 __u64 target_fid, \
311 __u32 tid, \
312 __u64 sesid, \
313 __u64 src_offset, \
314 __u64 target_offset, \
315 __u32 len), \
316 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len))
318 DEFINE_SMB3_COPY_RANGE_DONE_EVENT(copychunk_enter);
319 DEFINE_SMB3_COPY_RANGE_DONE_EVENT(clone_enter);
320 DEFINE_SMB3_COPY_RANGE_DONE_EVENT(copychunk_done);
321 DEFINE_SMB3_COPY_RANGE_DONE_EVENT(clone_done);
324 /* For logging successful read or write */
325 DECLARE_EVENT_CLASS(smb3_rw_done_class,
326 TP_PROTO(unsigned int rreq_debug_id,
327 unsigned int rreq_debug_index,
328 unsigned int xid,
329 __u64 fid,
330 __u32 tid,
331 __u64 sesid,
332 __u64 offset,
333 __u32 len),
334 TP_ARGS(rreq_debug_id, rreq_debug_index,
335 xid, fid, tid, sesid, offset, len),
336 TP_STRUCT__entry(
337 __field(unsigned int, rreq_debug_id)
338 __field(unsigned int, rreq_debug_index)
339 __field(unsigned int, xid)
340 __field(__u64, fid)
341 __field(__u32, tid)
342 __field(__u64, sesid)
343 __field(__u64, offset)
344 __field(__u32, len)
346 TP_fast_assign(
347 __entry->rreq_debug_id = rreq_debug_id;
348 __entry->rreq_debug_index = rreq_debug_index;
349 __entry->xid = xid;
350 __entry->fid = fid;
351 __entry->tid = tid;
352 __entry->sesid = sesid;
353 __entry->offset = offset;
354 __entry->len = len;
356 TP_printk("R=%08x[%x] xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
357 __entry->rreq_debug_id, __entry->rreq_debug_index,
358 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
359 __entry->offset, __entry->len)
362 #define DEFINE_SMB3_RW_DONE_EVENT(name) \
363 DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \
364 TP_PROTO(unsigned int rreq_debug_id, \
365 unsigned int rreq_debug_index, \
366 unsigned int xid, \
367 __u64 fid, \
368 __u32 tid, \
369 __u64 sesid, \
370 __u64 offset, \
371 __u32 len), \
372 TP_ARGS(rreq_debug_id, rreq_debug_index, xid, fid, tid, sesid, offset, len))
374 DEFINE_SMB3_RW_DONE_EVENT(read_enter);
375 DEFINE_SMB3_RW_DONE_EVENT(read_done);
376 DEFINE_SMB3_RW_DONE_EVENT(write_enter);
377 DEFINE_SMB3_RW_DONE_EVENT(write_done);
379 /* For logging successful other op */
380 DECLARE_EVENT_CLASS(smb3_other_done_class,
381 TP_PROTO(unsigned int xid,
382 __u64 fid,
383 __u32 tid,
384 __u64 sesid,
385 __u64 offset,
386 __u32 len),
387 TP_ARGS(xid, fid, tid, sesid, offset, len),
388 TP_STRUCT__entry(
389 __field(unsigned int, xid)
390 __field(__u64, fid)
391 __field(__u32, tid)
392 __field(__u64, sesid)
393 __field(__u64, offset)
394 __field(__u32, len)
396 TP_fast_assign(
397 __entry->xid = xid;
398 __entry->fid = fid;
399 __entry->tid = tid;
400 __entry->sesid = sesid;
401 __entry->offset = offset;
402 __entry->len = len;
404 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
405 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
406 __entry->offset, __entry->len)
409 #define DEFINE_SMB3_OTHER_DONE_EVENT(name) \
410 DEFINE_EVENT(smb3_other_done_class, smb3_##name, \
411 TP_PROTO(unsigned int xid, \
412 __u64 fid, \
413 __u32 tid, \
414 __u64 sesid, \
415 __u64 offset, \
416 __u32 len), \
417 TP_ARGS(xid, fid, tid, sesid, offset, len))
419 DEFINE_SMB3_OTHER_DONE_EVENT(query_dir_enter);
420 DEFINE_SMB3_OTHER_DONE_EVENT(zero_enter);
421 DEFINE_SMB3_OTHER_DONE_EVENT(falloc_enter);
422 DEFINE_SMB3_OTHER_DONE_EVENT(query_dir_done);
423 DEFINE_SMB3_OTHER_DONE_EVENT(zero_done);
424 DEFINE_SMB3_OTHER_DONE_EVENT(falloc_done);
426 /* For logging successful set EOF (truncate) */
427 DECLARE_EVENT_CLASS(smb3_eof_class,
428 TP_PROTO(unsigned int xid,
429 __u64 fid,
430 __u32 tid,
431 __u64 sesid,
432 __u64 offset),
433 TP_ARGS(xid, fid, tid, sesid, offset),
434 TP_STRUCT__entry(
435 __field(unsigned int, xid)
436 __field(__u64, fid)
437 __field(__u32, tid)
438 __field(__u64, sesid)
439 __field(__u64, offset)
441 TP_fast_assign(
442 __entry->xid = xid;
443 __entry->fid = fid;
444 __entry->tid = tid;
445 __entry->sesid = sesid;
446 __entry->offset = offset;
448 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx",
449 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
450 __entry->offset)
453 #define DEFINE_SMB3_EOF_EVENT(name) \
454 DEFINE_EVENT(smb3_eof_class, smb3_##name, \
455 TP_PROTO(unsigned int xid, \
456 __u64 fid, \
457 __u32 tid, \
458 __u64 sesid, \
459 __u64 offset), \
460 TP_ARGS(xid, fid, tid, sesid, offset))
462 DEFINE_SMB3_EOF_EVENT(set_eof);
465 * For handle based calls other than read and write, and get/set info
467 DECLARE_EVENT_CLASS(smb3_fd_class,
468 TP_PROTO(unsigned int xid,
469 __u64 fid,
470 __u32 tid,
471 __u64 sesid),
472 TP_ARGS(xid, fid, tid, sesid),
473 TP_STRUCT__entry(
474 __field(unsigned int, xid)
475 __field(__u64, fid)
476 __field(__u32, tid)
477 __field(__u64, sesid)
479 TP_fast_assign(
480 __entry->xid = xid;
481 __entry->fid = fid;
482 __entry->tid = tid;
483 __entry->sesid = sesid;
485 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
486 __entry->xid, __entry->sesid, __entry->tid, __entry->fid)
489 #define DEFINE_SMB3_FD_EVENT(name) \
490 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
491 TP_PROTO(unsigned int xid, \
492 __u64 fid, \
493 __u32 tid, \
494 __u64 sesid), \
495 TP_ARGS(xid, fid, tid, sesid))
497 DEFINE_SMB3_FD_EVENT(flush_enter);
498 DEFINE_SMB3_FD_EVENT(flush_done);
499 DEFINE_SMB3_FD_EVENT(close_enter);
500 DEFINE_SMB3_FD_EVENT(close_done);
501 DEFINE_SMB3_FD_EVENT(oplock_not_found);
503 DECLARE_EVENT_CLASS(smb3_fd_err_class,
504 TP_PROTO(unsigned int xid,
505 __u64 fid,
506 __u32 tid,
507 __u64 sesid,
508 int rc),
509 TP_ARGS(xid, fid, tid, sesid, rc),
510 TP_STRUCT__entry(
511 __field(unsigned int, xid)
512 __field(__u64, fid)
513 __field(__u32, tid)
514 __field(__u64, sesid)
515 __field(int, rc)
517 TP_fast_assign(
518 __entry->xid = xid;
519 __entry->fid = fid;
520 __entry->tid = tid;
521 __entry->sesid = sesid;
522 __entry->rc = rc;
524 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
525 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
526 __entry->rc)
529 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
530 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
531 TP_PROTO(unsigned int xid, \
532 __u64 fid, \
533 __u32 tid, \
534 __u64 sesid, \
535 int rc), \
536 TP_ARGS(xid, fid, tid, sesid, rc))
538 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
539 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
540 DEFINE_SMB3_FD_ERR_EVENT(close_err);
543 * For handle based query/set info calls
545 DECLARE_EVENT_CLASS(smb3_inf_enter_class,
546 TP_PROTO(unsigned int xid,
547 __u64 fid,
548 __u32 tid,
549 __u64 sesid,
550 __u8 infclass,
551 __u32 type),
552 TP_ARGS(xid, fid, tid, sesid, infclass, type),
553 TP_STRUCT__entry(
554 __field(unsigned int, xid)
555 __field(__u64, fid)
556 __field(__u32, tid)
557 __field(__u64, sesid)
558 __field(__u8, infclass)
559 __field(__u32, type)
561 TP_fast_assign(
562 __entry->xid = xid;
563 __entry->fid = fid;
564 __entry->tid = tid;
565 __entry->sesid = sesid;
566 __entry->infclass = infclass;
567 __entry->type = type;
569 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
570 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
571 __entry->infclass, __entry->type)
574 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
575 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
576 TP_PROTO(unsigned int xid, \
577 __u64 fid, \
578 __u32 tid, \
579 __u64 sesid, \
580 __u8 infclass, \
581 __u32 type), \
582 TP_ARGS(xid, fid, tid, sesid, infclass, type))
584 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
585 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
586 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
587 DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
589 DECLARE_EVENT_CLASS(smb3_inf_err_class,
590 TP_PROTO(unsigned int xid,
591 __u64 fid,
592 __u32 tid,
593 __u64 sesid,
594 __u8 infclass,
595 __u32 type,
596 int rc),
597 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
598 TP_STRUCT__entry(
599 __field(unsigned int, xid)
600 __field(__u64, fid)
601 __field(__u32, tid)
602 __field(__u64, sesid)
603 __field(__u8, infclass)
604 __field(__u32, type)
605 __field(int, rc)
607 TP_fast_assign(
608 __entry->xid = xid;
609 __entry->fid = fid;
610 __entry->tid = tid;
611 __entry->sesid = sesid;
612 __entry->infclass = infclass;
613 __entry->type = type;
614 __entry->rc = rc;
616 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
617 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
618 __entry->infclass, __entry->type, __entry->rc)
621 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
622 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
623 TP_PROTO(unsigned int xid, \
624 __u64 fid, \
625 __u32 tid, \
626 __u64 sesid, \
627 __u8 infclass, \
628 __u32 type, \
629 int rc), \
630 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
632 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
633 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
634 DEFINE_SMB3_INF_ERR_EVENT(notify_err);
635 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
637 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
638 TP_PROTO(unsigned int xid,
639 __u32 tid,
640 __u64 sesid,
641 const char *full_path),
642 TP_ARGS(xid, tid, sesid, full_path),
643 TP_STRUCT__entry(
644 __field(unsigned int, xid)
645 __field(__u32, tid)
646 __field(__u64, sesid)
647 __string(path, full_path)
649 TP_fast_assign(
650 __entry->xid = xid;
651 __entry->tid = tid;
652 __entry->sesid = sesid;
653 __assign_str(path);
655 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
656 __entry->xid, __entry->sesid, __entry->tid,
657 __get_str(path))
660 #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
661 DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \
662 TP_PROTO(unsigned int xid, \
663 __u32 tid, \
664 __u64 sesid, \
665 const char *full_path), \
666 TP_ARGS(xid, tid, sesid, full_path))
668 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
669 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
670 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
671 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
672 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
673 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
674 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
675 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_reparse_compound_enter);
676 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(get_reparse_compound_enter);
677 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
678 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
679 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
680 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mknod_enter);
682 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
683 TP_PROTO(unsigned int xid,
684 __u32 tid,
685 __u64 sesid),
686 TP_ARGS(xid, tid, sesid),
687 TP_STRUCT__entry(
688 __field(unsigned int, xid)
689 __field(__u32, tid)
690 __field(__u64, sesid)
692 TP_fast_assign(
693 __entry->xid = xid;
694 __entry->tid = tid;
695 __entry->sesid = sesid;
697 TP_printk("xid=%u sid=0x%llx tid=0x%x",
698 __entry->xid, __entry->sesid, __entry->tid)
701 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
702 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
703 TP_PROTO(unsigned int xid, \
704 __u32 tid, \
705 __u64 sesid), \
706 TP_ARGS(xid, tid, sesid))
708 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
709 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
710 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
711 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
712 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
713 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
714 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
715 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_reparse_compound_done);
716 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(get_reparse_compound_done);
717 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_wsl_ea_compound_done);
718 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
719 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
720 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
721 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mknod_done);
723 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
724 TP_PROTO(unsigned int xid,
725 __u32 tid,
726 __u64 sesid,
727 int rc),
728 TP_ARGS(xid, tid, sesid, rc),
729 TP_STRUCT__entry(
730 __field(unsigned int, xid)
731 __field(__u32, tid)
732 __field(__u64, sesid)
733 __field(int, rc)
735 TP_fast_assign(
736 __entry->xid = xid;
737 __entry->tid = tid;
738 __entry->sesid = sesid;
739 __entry->rc = rc;
741 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
742 __entry->xid, __entry->sesid, __entry->tid,
743 __entry->rc)
746 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
747 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
748 TP_PROTO(unsigned int xid, \
749 __u32 tid, \
750 __u64 sesid, \
751 int rc), \
752 TP_ARGS(xid, tid, sesid, rc))
754 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
755 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
756 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
757 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
758 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
759 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
760 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
761 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_reparse_compound_err);
762 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(get_reparse_compound_err);
763 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_wsl_ea_compound_err);
764 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
765 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
766 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
767 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mknod_err);
770 * For logging SMB3 Status code and Command for responses which return errors
772 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
773 TP_PROTO(__u32 tid,
774 __u64 sesid,
775 __u16 cmd,
776 __u64 mid,
777 __u32 status,
778 int rc),
779 TP_ARGS(tid, sesid, cmd, mid, status, rc),
780 TP_STRUCT__entry(
781 __field(__u32, tid)
782 __field(__u64, sesid)
783 __field(__u16, cmd)
784 __field(__u64, mid)
785 __field(__u32, status)
786 __field(int, rc)
788 TP_fast_assign(
789 __entry->tid = tid;
790 __entry->sesid = sesid;
791 __entry->cmd = cmd;
792 __entry->mid = mid;
793 __entry->status = status;
794 __entry->rc = rc;
796 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
797 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
798 __entry->status, __entry->rc)
801 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
802 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
803 TP_PROTO(__u32 tid, \
804 __u64 sesid, \
805 __u16 cmd, \
806 __u64 mid, \
807 __u32 status, \
808 int rc), \
809 TP_ARGS(tid, sesid, cmd, mid, status, rc))
811 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
813 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
814 TP_PROTO(__u32 tid,
815 __u64 sesid,
816 __u16 cmd,
817 __u64 mid),
818 TP_ARGS(tid, sesid, cmd, mid),
819 TP_STRUCT__entry(
820 __field(__u32, tid)
821 __field(__u64, sesid)
822 __field(__u16, cmd)
823 __field(__u64, mid)
825 TP_fast_assign(
826 __entry->tid = tid;
827 __entry->sesid = sesid;
828 __entry->cmd = cmd;
829 __entry->mid = mid;
831 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
832 __entry->sesid, __entry->tid,
833 __entry->cmd, __entry->mid)
836 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
837 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
838 TP_PROTO(__u32 tid, \
839 __u64 sesid, \
840 __u16 cmd, \
841 __u64 mid), \
842 TP_ARGS(tid, sesid, cmd, mid))
844 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
845 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
846 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
848 DECLARE_EVENT_CLASS(smb3_mid_class,
849 TP_PROTO(__u16 cmd,
850 __u64 mid,
851 __u32 pid,
852 unsigned long when_sent,
853 unsigned long when_received),
854 TP_ARGS(cmd, mid, pid, when_sent, when_received),
855 TP_STRUCT__entry(
856 __field(__u16, cmd)
857 __field(__u64, mid)
858 __field(__u32, pid)
859 __field(unsigned long, when_sent)
860 __field(unsigned long, when_received)
862 TP_fast_assign(
863 __entry->cmd = cmd;
864 __entry->mid = mid;
865 __entry->pid = pid;
866 __entry->when_sent = when_sent;
867 __entry->when_received = when_received;
869 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
870 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
871 __entry->when_received)
874 #define DEFINE_SMB3_MID_EVENT(name) \
875 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
876 TP_PROTO(__u16 cmd, \
877 __u64 mid, \
878 __u32 pid, \
879 unsigned long when_sent, \
880 unsigned long when_received), \
881 TP_ARGS(cmd, mid, pid, when_sent, when_received))
883 DEFINE_SMB3_MID_EVENT(slow_rsp);
885 DECLARE_EVENT_CLASS(smb3_exit_err_class,
886 TP_PROTO(unsigned int xid,
887 const char *func_name,
888 int rc),
889 TP_ARGS(xid, func_name, rc),
890 TP_STRUCT__entry(
891 __field(unsigned int, xid)
892 __string(func_name, func_name)
893 __field(int, rc)
895 TP_fast_assign(
896 __entry->xid = xid;
897 __assign_str(func_name);
898 __entry->rc = rc;
900 TP_printk("\t%s: xid=%u rc=%d",
901 __get_str(func_name), __entry->xid, __entry->rc)
904 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
905 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
906 TP_PROTO(unsigned int xid, \
907 const char *func_name, \
908 int rc), \
909 TP_ARGS(xid, func_name, rc))
911 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
914 DECLARE_EVENT_CLASS(smb3_sync_err_class,
915 TP_PROTO(unsigned long ino,
916 int rc),
917 TP_ARGS(ino, rc),
918 TP_STRUCT__entry(
919 __field(unsigned long, ino)
920 __field(int, rc)
922 TP_fast_assign(
923 __entry->ino = ino;
924 __entry->rc = rc;
926 TP_printk("\tino=%lu rc=%d",
927 __entry->ino, __entry->rc)
930 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
931 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
932 TP_PROTO(unsigned long ino, \
933 int rc), \
934 TP_ARGS(ino, rc))
936 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
937 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
940 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
941 TP_PROTO(unsigned int xid,
942 const char *func_name),
943 TP_ARGS(xid, func_name),
944 TP_STRUCT__entry(
945 __field(unsigned int, xid)
946 __string(func_name, func_name)
948 TP_fast_assign(
949 __entry->xid = xid;
950 __assign_str(func_name);
952 TP_printk("\t%s: xid=%u",
953 __get_str(func_name), __entry->xid)
956 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
957 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
958 TP_PROTO(unsigned int xid, \
959 const char *func_name), \
960 TP_ARGS(xid, func_name))
962 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
963 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
966 * For SMB2/SMB3 tree connect
969 DECLARE_EVENT_CLASS(smb3_tcon_class,
970 TP_PROTO(unsigned int xid,
971 __u32 tid,
972 __u64 sesid,
973 const char *unc_name,
974 int rc),
975 TP_ARGS(xid, tid, sesid, unc_name, rc),
976 TP_STRUCT__entry(
977 __field(unsigned int, xid)
978 __field(__u32, tid)
979 __field(__u64, sesid)
980 __string(name, unc_name)
981 __field(int, rc)
983 TP_fast_assign(
984 __entry->xid = xid;
985 __entry->tid = tid;
986 __entry->sesid = sesid;
987 __assign_str(name);
988 __entry->rc = rc;
990 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
991 __entry->xid, __entry->sesid, __entry->tid,
992 __get_str(name), __entry->rc)
995 #define DEFINE_SMB3_TCON_EVENT(name) \
996 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
997 TP_PROTO(unsigned int xid, \
998 __u32 tid, \
999 __u64 sesid, \
1000 const char *unc_name, \
1001 int rc), \
1002 TP_ARGS(xid, tid, sesid, unc_name, rc))
1004 DEFINE_SMB3_TCON_EVENT(tcon);
1005 DEFINE_SMB3_TCON_EVENT(qfs_done);
1008 * For smb2/smb3 open (including create and mkdir) calls
1011 DECLARE_EVENT_CLASS(smb3_open_enter_class,
1012 TP_PROTO(unsigned int xid,
1013 __u32 tid,
1014 __u64 sesid,
1015 const char *full_path,
1016 int create_options,
1017 int desired_access),
1018 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access),
1019 TP_STRUCT__entry(
1020 __field(unsigned int, xid)
1021 __field(__u32, tid)
1022 __field(__u64, sesid)
1023 __string(path, full_path)
1024 __field(int, create_options)
1025 __field(int, desired_access)
1027 TP_fast_assign(
1028 __entry->xid = xid;
1029 __entry->tid = tid;
1030 __entry->sesid = sesid;
1031 __assign_str(path);
1032 __entry->create_options = create_options;
1033 __entry->desired_access = desired_access;
1035 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x",
1036 __entry->xid, __entry->sesid, __entry->tid, __get_str(path),
1037 __entry->create_options, __entry->desired_access)
1040 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
1041 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
1042 TP_PROTO(unsigned int xid, \
1043 __u32 tid, \
1044 __u64 sesid, \
1045 const char *full_path, \
1046 int create_options, \
1047 int desired_access), \
1048 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access))
1050 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
1051 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
1053 DECLARE_EVENT_CLASS(smb3_open_err_class,
1054 TP_PROTO(unsigned int xid,
1055 __u32 tid,
1056 __u64 sesid,
1057 int create_options,
1058 int desired_access,
1059 int rc),
1060 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
1061 TP_STRUCT__entry(
1062 __field(unsigned int, xid)
1063 __field(__u32, tid)
1064 __field(__u64, sesid)
1065 __field(int, create_options)
1066 __field(int, desired_access)
1067 __field(int, rc)
1069 TP_fast_assign(
1070 __entry->xid = xid;
1071 __entry->tid = tid;
1072 __entry->sesid = sesid;
1073 __entry->create_options = create_options;
1074 __entry->desired_access = desired_access;
1075 __entry->rc = rc;
1077 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
1078 __entry->xid, __entry->sesid, __entry->tid,
1079 __entry->create_options, __entry->desired_access, __entry->rc)
1082 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
1083 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
1084 TP_PROTO(unsigned int xid, \
1085 __u32 tid, \
1086 __u64 sesid, \
1087 int create_options, \
1088 int desired_access, \
1089 int rc), \
1090 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
1092 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
1093 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
1095 DECLARE_EVENT_CLASS(smb3_open_done_class,
1096 TP_PROTO(unsigned int xid,
1097 __u64 fid,
1098 __u32 tid,
1099 __u64 sesid,
1100 int create_options,
1101 int desired_access),
1102 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
1103 TP_STRUCT__entry(
1104 __field(unsigned int, xid)
1105 __field(__u64, fid)
1106 __field(__u32, tid)
1107 __field(__u64, sesid)
1108 __field(int, create_options)
1109 __field(int, desired_access)
1111 TP_fast_assign(
1112 __entry->xid = xid;
1113 __entry->fid = fid;
1114 __entry->tid = tid;
1115 __entry->sesid = sesid;
1116 __entry->create_options = create_options;
1117 __entry->desired_access = desired_access;
1119 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
1120 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
1121 __entry->create_options, __entry->desired_access)
1124 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
1125 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
1126 TP_PROTO(unsigned int xid, \
1127 __u64 fid, \
1128 __u32 tid, \
1129 __u64 sesid, \
1130 int create_options, \
1131 int desired_access), \
1132 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
1134 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
1135 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
1138 DECLARE_EVENT_CLASS(smb3_lease_done_class,
1139 TP_PROTO(__u32 lease_state,
1140 __u32 tid,
1141 __u64 sesid,
1142 __u64 lease_key_low,
1143 __u64 lease_key_high),
1144 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
1145 TP_STRUCT__entry(
1146 __field(__u32, lease_state)
1147 __field(__u32, tid)
1148 __field(__u64, sesid)
1149 __field(__u64, lease_key_low)
1150 __field(__u64, lease_key_high)
1152 TP_fast_assign(
1153 __entry->lease_state = lease_state;
1154 __entry->tid = tid;
1155 __entry->sesid = sesid;
1156 __entry->lease_key_low = lease_key_low;
1157 __entry->lease_key_high = lease_key_high;
1159 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
1160 __entry->sesid, __entry->tid, __entry->lease_key_high,
1161 __entry->lease_key_low, __entry->lease_state)
1164 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
1165 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
1166 TP_PROTO(__u32 lease_state, \
1167 __u32 tid, \
1168 __u64 sesid, \
1169 __u64 lease_key_low, \
1170 __u64 lease_key_high), \
1171 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
1173 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
1174 DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
1176 DECLARE_EVENT_CLASS(smb3_lease_err_class,
1177 TP_PROTO(__u32 lease_state,
1178 __u32 tid,
1179 __u64 sesid,
1180 __u64 lease_key_low,
1181 __u64 lease_key_high,
1182 int rc),
1183 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
1184 TP_STRUCT__entry(
1185 __field(__u32, lease_state)
1186 __field(__u32, tid)
1187 __field(__u64, sesid)
1188 __field(__u64, lease_key_low)
1189 __field(__u64, lease_key_high)
1190 __field(int, rc)
1192 TP_fast_assign(
1193 __entry->lease_state = lease_state;
1194 __entry->tid = tid;
1195 __entry->sesid = sesid;
1196 __entry->lease_key_low = lease_key_low;
1197 __entry->lease_key_high = lease_key_high;
1198 __entry->rc = rc;
1200 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
1201 __entry->sesid, __entry->tid, __entry->lease_key_high,
1202 __entry->lease_key_low, __entry->lease_state, __entry->rc)
1205 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
1206 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
1207 TP_PROTO(__u32 lease_state, \
1208 __u32 tid, \
1209 __u64 sesid, \
1210 __u64 lease_key_low, \
1211 __u64 lease_key_high, \
1212 int rc), \
1213 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
1215 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
1217 DECLARE_EVENT_CLASS(smb3_connect_class,
1218 TP_PROTO(char *hostname,
1219 __u64 conn_id,
1220 const struct __kernel_sockaddr_storage *dst_addr),
1221 TP_ARGS(hostname, conn_id, dst_addr),
1222 TP_STRUCT__entry(
1223 __string(hostname, hostname)
1224 __field(__u64, conn_id)
1225 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1227 TP_fast_assign(
1228 struct sockaddr_storage *pss = NULL;
1230 __entry->conn_id = conn_id;
1231 pss = (struct sockaddr_storage *)__entry->dst_addr;
1232 *pss = *dst_addr;
1233 __assign_str(hostname);
1235 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
1236 __entry->conn_id,
1237 __get_str(hostname),
1238 __entry->dst_addr)
1241 #define DEFINE_SMB3_CONNECT_EVENT(name) \
1242 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
1243 TP_PROTO(char *hostname, \
1244 __u64 conn_id, \
1245 const struct __kernel_sockaddr_storage *addr), \
1246 TP_ARGS(hostname, conn_id, addr))
1248 DEFINE_SMB3_CONNECT_EVENT(connect_done);
1249 DEFINE_SMB3_CONNECT_EVENT(smbd_connect_done);
1250 DEFINE_SMB3_CONNECT_EVENT(smbd_connect_err);
1252 DECLARE_EVENT_CLASS(smb3_connect_err_class,
1253 TP_PROTO(char *hostname, __u64 conn_id,
1254 const struct __kernel_sockaddr_storage *dst_addr, int rc),
1255 TP_ARGS(hostname, conn_id, dst_addr, rc),
1256 TP_STRUCT__entry(
1257 __string(hostname, hostname)
1258 __field(__u64, conn_id)
1259 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1260 __field(int, rc)
1262 TP_fast_assign(
1263 struct sockaddr_storage *pss = NULL;
1265 __entry->conn_id = conn_id;
1266 __entry->rc = rc;
1267 pss = (struct sockaddr_storage *)__entry->dst_addr;
1268 *pss = *dst_addr;
1269 __assign_str(hostname);
1271 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
1272 __entry->rc,
1273 __entry->conn_id,
1274 __get_str(hostname),
1275 __entry->dst_addr)
1278 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
1279 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
1280 TP_PROTO(char *hostname, \
1281 __u64 conn_id, \
1282 const struct __kernel_sockaddr_storage *addr, \
1283 int rc), \
1284 TP_ARGS(hostname, conn_id, addr, rc))
1286 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
1288 DECLARE_EVENT_CLASS(smb3_sess_setup_err_class,
1289 TP_PROTO(char *hostname, char *username, __u64 conn_id,
1290 const struct __kernel_sockaddr_storage *dst_addr, int rc),
1291 TP_ARGS(hostname, username, conn_id, dst_addr, rc),
1292 TP_STRUCT__entry(
1293 __string(hostname, hostname)
1294 __string(username, username)
1295 __field(__u64, conn_id)
1296 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1297 __field(int, rc)
1299 TP_fast_assign(
1300 struct sockaddr_storage *pss = NULL;
1302 __entry->conn_id = conn_id;
1303 __entry->rc = rc;
1304 pss = (struct sockaddr_storage *)__entry->dst_addr;
1305 *pss = *dst_addr;
1306 __assign_str(hostname);
1307 __assign_str(username);
1309 TP_printk("rc=%d user=%s conn_id=0x%llx server=%s addr=%pISpsfc",
1310 __entry->rc,
1311 __get_str(username),
1312 __entry->conn_id,
1313 __get_str(hostname),
1314 __entry->dst_addr)
1317 #define DEFINE_SMB3_SES_SETUP_ERR_EVENT(name) \
1318 DEFINE_EVENT(smb3_sess_setup_err_class, smb3_##name, \
1319 TP_PROTO(char *hostname, \
1320 char *username, \
1321 __u64 conn_id, \
1322 const struct __kernel_sockaddr_storage *addr, \
1323 int rc), \
1324 TP_ARGS(hostname, username, conn_id, addr, rc))
1326 DEFINE_SMB3_SES_SETUP_ERR_EVENT(key_expired);
1328 DECLARE_EVENT_CLASS(smb3_reconnect_class,
1329 TP_PROTO(__u64 currmid,
1330 __u64 conn_id,
1331 char *hostname),
1332 TP_ARGS(currmid, conn_id, hostname),
1333 TP_STRUCT__entry(
1334 __field(__u64, currmid)
1335 __field(__u64, conn_id)
1336 __string(hostname, hostname)
1338 TP_fast_assign(
1339 __entry->currmid = currmid;
1340 __entry->conn_id = conn_id;
1341 __assign_str(hostname);
1343 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
1344 __entry->conn_id,
1345 __get_str(hostname),
1346 __entry->currmid)
1349 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
1350 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
1351 TP_PROTO(__u64 currmid, \
1352 __u64 conn_id, \
1353 char *hostname), \
1354 TP_ARGS(currmid, conn_id, hostname))
1356 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
1357 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
1359 DECLARE_EVENT_CLASS(smb3_ses_class,
1360 TP_PROTO(__u64 sesid),
1361 TP_ARGS(sesid),
1362 TP_STRUCT__entry(
1363 __field(__u64, sesid)
1365 TP_fast_assign(
1366 __entry->sesid = sesid;
1368 TP_printk("sid=0x%llx",
1369 __entry->sesid)
1372 #define DEFINE_SMB3_SES_EVENT(name) \
1373 DEFINE_EVENT(smb3_ses_class, smb3_##name, \
1374 TP_PROTO(__u64 sesid), \
1375 TP_ARGS(sesid))
1377 DEFINE_SMB3_SES_EVENT(ses_not_found);
1379 DECLARE_EVENT_CLASS(smb3_ioctl_class,
1380 TP_PROTO(unsigned int xid,
1381 __u64 fid,
1382 unsigned int command),
1383 TP_ARGS(xid, fid, command),
1384 TP_STRUCT__entry(
1385 __field(unsigned int, xid)
1386 __field(__u64, fid)
1387 __field(unsigned int, command)
1389 TP_fast_assign(
1390 __entry->xid = xid;
1391 __entry->fid = fid;
1392 __entry->command = command;
1394 TP_printk("xid=%u fid=0x%llx ioctl cmd=0x%x",
1395 __entry->xid, __entry->fid, __entry->command)
1398 #define DEFINE_SMB3_IOCTL_EVENT(name) \
1399 DEFINE_EVENT(smb3_ioctl_class, smb3_##name, \
1400 TP_PROTO(unsigned int xid, \
1401 __u64 fid, \
1402 unsigned int command), \
1403 TP_ARGS(xid, fid, command))
1405 DEFINE_SMB3_IOCTL_EVENT(ioctl);
1407 DECLARE_EVENT_CLASS(smb3_shutdown_class,
1408 TP_PROTO(__u32 flags,
1409 __u32 tid),
1410 TP_ARGS(flags, tid),
1411 TP_STRUCT__entry(
1412 __field(__u32, flags)
1413 __field(__u32, tid)
1415 TP_fast_assign(
1416 __entry->flags = flags;
1417 __entry->tid = tid;
1419 TP_printk("flags=0x%x tid=0x%x",
1420 __entry->flags, __entry->tid)
1423 #define DEFINE_SMB3_SHUTDOWN_EVENT(name) \
1424 DEFINE_EVENT(smb3_shutdown_class, smb3_##name, \
1425 TP_PROTO(__u32 flags, \
1426 __u32 tid), \
1427 TP_ARGS(flags, tid))
1429 DEFINE_SMB3_SHUTDOWN_EVENT(shutdown_enter);
1430 DEFINE_SMB3_SHUTDOWN_EVENT(shutdown_done);
1432 DECLARE_EVENT_CLASS(smb3_shutdown_err_class,
1433 TP_PROTO(int rc,
1434 __u32 flags,
1435 __u32 tid),
1436 TP_ARGS(rc, flags, tid),
1437 TP_STRUCT__entry(
1438 __field(int, rc)
1439 __field(__u32, flags)
1440 __field(__u32, tid)
1442 TP_fast_assign(
1443 __entry->rc = rc;
1444 __entry->flags = flags;
1445 __entry->tid = tid;
1447 TP_printk("rc=%d flags=0x%x tid=0x%x",
1448 __entry->rc, __entry->flags, __entry->tid)
1451 #define DEFINE_SMB3_SHUTDOWN_ERR_EVENT(name) \
1452 DEFINE_EVENT(smb3_shutdown_err_class, smb3_##name, \
1453 TP_PROTO(int rc, \
1454 __u32 flags, \
1455 __u32 tid), \
1456 TP_ARGS(rc, flags, tid))
1458 DEFINE_SMB3_SHUTDOWN_ERR_EVENT(shutdown_err);
1460 DECLARE_EVENT_CLASS(smb3_credit_class,
1461 TP_PROTO(__u64 currmid,
1462 __u64 conn_id,
1463 char *hostname,
1464 int credits,
1465 int credits_to_add,
1466 int in_flight),
1467 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
1468 TP_STRUCT__entry(
1469 __field(__u64, currmid)
1470 __field(__u64, conn_id)
1471 __string(hostname, hostname)
1472 __field(int, credits)
1473 __field(int, credits_to_add)
1474 __field(int, in_flight)
1476 TP_fast_assign(
1477 __entry->currmid = currmid;
1478 __entry->conn_id = conn_id;
1479 __assign_str(hostname);
1480 __entry->credits = credits;
1481 __entry->credits_to_add = credits_to_add;
1482 __entry->in_flight = in_flight;
1484 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1485 "credits=%d credit_change=%d in_flight=%d",
1486 __entry->conn_id,
1487 __get_str(hostname),
1488 __entry->currmid,
1489 __entry->credits,
1490 __entry->credits_to_add,
1491 __entry->in_flight)
1494 #define DEFINE_SMB3_CREDIT_EVENT(name) \
1495 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
1496 TP_PROTO(__u64 currmid, \
1497 __u64 conn_id, \
1498 char *hostname, \
1499 int credits, \
1500 int credits_to_add, \
1501 int in_flight), \
1502 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1504 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1505 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1506 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1507 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1508 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1509 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1510 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1511 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1512 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1513 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1514 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1515 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1516 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1517 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1520 TRACE_EVENT(smb3_tcon_ref,
1521 TP_PROTO(unsigned int tcon_debug_id, int ref,
1522 enum smb3_tcon_ref_trace trace),
1523 TP_ARGS(tcon_debug_id, ref, trace),
1524 TP_STRUCT__entry(
1525 __field(unsigned int, tcon)
1526 __field(int, ref)
1527 __field(enum smb3_tcon_ref_trace, trace)
1529 TP_fast_assign(
1530 __entry->tcon = tcon_debug_id;
1531 __entry->ref = ref;
1532 __entry->trace = trace;
1534 TP_printk("TC=%08x %s r=%u",
1535 __entry->tcon,
1536 __print_symbolic(__entry->trace, smb3_tcon_ref_traces),
1537 __entry->ref)
1540 TRACE_EVENT(smb3_rw_credits,
1541 TP_PROTO(unsigned int rreq_debug_id,
1542 unsigned int subreq_debug_index,
1543 unsigned int subreq_credits,
1544 unsigned int server_credits,
1545 int server_in_flight,
1546 int credit_change,
1547 enum smb3_rw_credits_trace trace),
1548 TP_ARGS(rreq_debug_id, subreq_debug_index, subreq_credits,
1549 server_credits, server_in_flight, credit_change, trace),
1550 TP_STRUCT__entry(
1551 __field(unsigned int, rreq_debug_id)
1552 __field(unsigned int, subreq_debug_index)
1553 __field(unsigned int, subreq_credits)
1554 __field(unsigned int, server_credits)
1555 __field(int, in_flight)
1556 __field(int, credit_change)
1557 __field(enum smb3_rw_credits_trace, trace)
1559 TP_fast_assign(
1560 __entry->rreq_debug_id = rreq_debug_id;
1561 __entry->subreq_debug_index = subreq_debug_index;
1562 __entry->subreq_credits = subreq_credits;
1563 __entry->server_credits = server_credits;
1564 __entry->in_flight = server_in_flight;
1565 __entry->credit_change = credit_change;
1566 __entry->trace = trace;
1568 TP_printk("R=%08x[%x] %s cred=%u chg=%d pool=%u ifl=%d",
1569 __entry->rreq_debug_id, __entry->subreq_debug_index,
1570 __print_symbolic(__entry->trace, smb3_rw_credits_traces),
1571 __entry->subreq_credits, __entry->credit_change,
1572 __entry->server_credits, __entry->in_flight)
1576 #undef EM
1577 #undef E_
1578 #endif /* _CIFS_TRACE_H */
1580 #undef TRACE_INCLUDE_PATH
1581 #define TRACE_INCLUDE_PATH .
1582 #define TRACE_INCLUDE_FILE trace
1583 #include <trace/define_trace.h>