1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2018, Microsoft Corporation.
7 * Please use this 3-part article as a reference for writing new tracepoints:
8 * https://lwn.net/Articles/379903/
11 #define TRACE_SYSTEM cifs
13 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
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")
74 * Define those tracing enums.
76 #ifndef __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY
77 #define __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY
82 enum smb3_rw_credits_trace { smb3_rw_credits_traces } __mode(byte);
83 enum smb3_tcon_ref_trace { smb3_tcon_ref_traces } __mode(byte);
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;
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,
119 TP_ARGS(rreq_debug_id, rreq_debug_index,
120 xid, fid, tid, sesid, offset, len, rc),
122 __field(unsigned int, rreq_debug_id)
123 __field(unsigned int, rreq_debug_index)
124 __field(unsigned int, xid)
127 __field(__u64, sesid)
128 __field(__u64, offset)
133 __entry->rreq_debug_id = rreq_debug_id;
134 __entry->rreq_debug_index = rreq_debug_index;
138 __entry->sesid = sesid;
139 __entry->offset = offset;
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, \
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,
174 TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
176 __field(unsigned int, xid)
179 __field(__u64, sesid)
180 __field(__u64, offset)
188 __entry->sesid = sesid;
189 __entry->offset = offset;
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, \
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,
227 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len, rc),
229 __field(unsigned int, xid)
230 __field(__u64, src_fid)
231 __field(__u64, target_fid)
233 __field(__u64, sesid)
234 __field(__u64, src_offset)
235 __field(__u64, target_offset)
241 __entry->src_fid = src_fid;
242 __entry->target_fid = target_fid;
244 __entry->sesid = sesid;
245 __entry->src_offset = src_offset;
246 __entry->target_offset = target_offset;
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, \
263 __u64 target_offset, \
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,
280 TP_ARGS(xid, src_fid, target_fid, tid, sesid, src_offset, target_offset, len),
282 __field(unsigned int, xid)
283 __field(__u64, src_fid)
284 __field(__u64, target_fid)
286 __field(__u64, sesid)
287 __field(__u64, src_offset)
288 __field(__u64, target_offset)
293 __entry->src_fid = src_fid;
294 __entry->target_fid = target_fid;
296 __entry->sesid = sesid;
297 __entry->src_offset = src_offset;
298 __entry->target_offset = target_offset;
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, \
314 __u64 target_offset, \
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,
334 TP_ARGS(rreq_debug_id, rreq_debug_index,
335 xid, fid, tid, sesid, offset, len),
337 __field(unsigned int, rreq_debug_id)
338 __field(unsigned int, rreq_debug_index)
339 __field(unsigned int, xid)
342 __field(__u64, sesid)
343 __field(__u64, offset)
347 __entry->rreq_debug_id = rreq_debug_id;
348 __entry->rreq_debug_index = rreq_debug_index;
352 __entry->sesid = sesid;
353 __entry->offset = offset;
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, \
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,
387 TP_ARGS(xid, fid, tid, sesid, offset, len),
389 __field(unsigned int, xid)
392 __field(__u64, sesid)
393 __field(__u64, offset)
400 __entry->sesid = sesid;
401 __entry->offset = offset;
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, \
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,
433 TP_ARGS(xid, fid, tid, sesid, offset),
435 __field(unsigned int, xid)
438 __field(__u64, sesid)
439 __field(__u64, offset)
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,
453 #define DEFINE_SMB3_EOF_EVENT(name) \
454 DEFINE_EVENT(smb3_eof_class, smb3_##name, \
455 TP_PROTO(unsigned int xid, \
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,
472 TP_ARGS(xid, fid, tid, sesid),
474 __field(unsigned int, xid)
477 __field(__u64, sesid)
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, \
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,
509 TP_ARGS(xid, fid, tid, sesid, rc),
511 __field(unsigned int, xid)
514 __field(__u64, sesid)
521 __entry->sesid = sesid;
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,
529 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
530 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
531 TP_PROTO(unsigned int xid, \
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,
552 TP_ARGS(xid, fid, tid, sesid, infclass, type),
554 __field(unsigned int, xid)
557 __field(__u64, sesid)
558 __field(__u8, infclass)
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, \
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,
597 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
599 __field(unsigned int, xid)
602 __field(__u64, sesid)
603 __field(__u8, infclass)
611 __entry->sesid = sesid;
612 __entry->infclass = infclass;
613 __entry->type = type;
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, \
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,
641 const char *full_path),
642 TP_ARGS(xid, tid, sesid, full_path),
644 __field(unsigned int, xid)
646 __field(__u64, sesid)
647 __string(path, full_path)
652 __entry->sesid = sesid;
655 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
656 __entry->xid, __entry->sesid, __entry->tid,
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, \
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(query_wsl_ea_compound_enter);
678 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
679 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
680 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
681 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mknod_enter);
683 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
684 TP_PROTO(unsigned int xid,
687 TP_ARGS(xid, tid, sesid),
689 __field(unsigned int, xid)
691 __field(__u64, sesid)
696 __entry->sesid = sesid;
698 TP_printk("xid=%u sid=0x%llx tid=0x%x",
699 __entry->xid, __entry->sesid, __entry->tid)
702 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
703 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
704 TP_PROTO(unsigned int xid, \
707 TP_ARGS(xid, tid, sesid))
709 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
710 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
711 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
712 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
713 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
714 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
715 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
716 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_reparse_compound_done);
717 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(get_reparse_compound_done);
718 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_wsl_ea_compound_done);
719 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
720 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
721 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
722 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mknod_done);
724 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
725 TP_PROTO(unsigned int xid,
729 TP_ARGS(xid, tid, sesid, rc),
731 __field(unsigned int, xid)
733 __field(__u64, sesid)
739 __entry->sesid = sesid;
742 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
743 __entry->xid, __entry->sesid, __entry->tid,
747 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
748 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
749 TP_PROTO(unsigned int xid, \
753 TP_ARGS(xid, tid, sesid, rc))
755 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
756 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
757 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
758 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
759 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
760 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
761 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
762 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_reparse_compound_err);
763 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(get_reparse_compound_err);
764 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_wsl_ea_compound_err);
765 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
766 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
767 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
768 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mknod_err);
771 * For logging SMB3 Status code and Command for responses which return errors
773 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
780 TP_ARGS(tid, sesid, cmd, mid, status, rc),
783 __field(__u64, sesid)
786 __field(__u32, status)
791 __entry->sesid = sesid;
794 __entry->status = status;
797 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
798 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
799 __entry->status, __entry->rc)
802 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
803 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
804 TP_PROTO(__u32 tid, \
810 TP_ARGS(tid, sesid, cmd, mid, status, rc))
812 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
814 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
819 TP_ARGS(tid, sesid, cmd, mid),
822 __field(__u64, sesid)
828 __entry->sesid = sesid;
832 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
833 __entry->sesid, __entry->tid,
834 __entry->cmd, __entry->mid)
837 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
838 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
839 TP_PROTO(__u32 tid, \
843 TP_ARGS(tid, sesid, cmd, mid))
845 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
846 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
847 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
849 DECLARE_EVENT_CLASS(smb3_mid_class,
853 unsigned long when_sent,
854 unsigned long when_received),
855 TP_ARGS(cmd, mid, pid, when_sent, when_received),
860 __field(unsigned long, when_sent)
861 __field(unsigned long, when_received)
867 __entry->when_sent = when_sent;
868 __entry->when_received = when_received;
870 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
871 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
872 __entry->when_received)
875 #define DEFINE_SMB3_MID_EVENT(name) \
876 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
877 TP_PROTO(__u16 cmd, \
880 unsigned long when_sent, \
881 unsigned long when_received), \
882 TP_ARGS(cmd, mid, pid, when_sent, when_received))
884 DEFINE_SMB3_MID_EVENT(slow_rsp);
886 DECLARE_EVENT_CLASS(smb3_exit_err_class,
887 TP_PROTO(unsigned int xid,
888 const char *func_name,
890 TP_ARGS(xid, func_name, rc),
892 __field(unsigned int, xid)
893 __string(func_name, func_name)
898 __assign_str(func_name);
901 TP_printk("\t%s: xid=%u rc=%d",
902 __get_str(func_name), __entry->xid, __entry->rc)
905 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
906 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
907 TP_PROTO(unsigned int xid, \
908 const char *func_name, \
910 TP_ARGS(xid, func_name, rc))
912 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
915 DECLARE_EVENT_CLASS(smb3_sync_err_class,
916 TP_PROTO(unsigned long ino,
920 __field(unsigned long, ino)
927 TP_printk("\tino=%lu rc=%d",
928 __entry->ino, __entry->rc)
931 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
932 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
933 TP_PROTO(unsigned long ino, \
937 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
938 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
941 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
942 TP_PROTO(unsigned int xid,
943 const char *func_name),
944 TP_ARGS(xid, func_name),
946 __field(unsigned int, xid)
947 __string(func_name, func_name)
951 __assign_str(func_name);
953 TP_printk("\t%s: xid=%u",
954 __get_str(func_name), __entry->xid)
957 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
958 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
959 TP_PROTO(unsigned int xid, \
960 const char *func_name), \
961 TP_ARGS(xid, func_name))
963 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
964 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
967 * For SMB2/SMB3 tree connect
970 DECLARE_EVENT_CLASS(smb3_tcon_class,
971 TP_PROTO(unsigned int xid,
974 const char *unc_name,
976 TP_ARGS(xid, tid, sesid, unc_name, rc),
978 __field(unsigned int, xid)
980 __field(__u64, sesid)
981 __string(name, unc_name)
987 __entry->sesid = sesid;
991 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
992 __entry->xid, __entry->sesid, __entry->tid,
993 __get_str(name), __entry->rc)
996 #define DEFINE_SMB3_TCON_EVENT(name) \
997 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
998 TP_PROTO(unsigned int xid, \
1001 const char *unc_name, \
1003 TP_ARGS(xid, tid, sesid, unc_name, rc))
1005 DEFINE_SMB3_TCON_EVENT(tcon);
1006 DEFINE_SMB3_TCON_EVENT(qfs_done);
1009 * For smb2/smb3 open (including create and mkdir) calls
1012 DECLARE_EVENT_CLASS(smb3_open_enter_class,
1013 TP_PROTO(unsigned int xid,
1016 const char *full_path,
1018 int desired_access),
1019 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access),
1021 __field(unsigned int, xid)
1023 __field(__u64, sesid)
1024 __string(path, full_path)
1025 __field(int, create_options)
1026 __field(int, desired_access)
1031 __entry->sesid = sesid;
1033 __entry->create_options = create_options;
1034 __entry->desired_access = desired_access;
1036 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x",
1037 __entry->xid, __entry->sesid, __entry->tid, __get_str(path),
1038 __entry->create_options, __entry->desired_access)
1041 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
1042 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
1043 TP_PROTO(unsigned int xid, \
1046 const char *full_path, \
1047 int create_options, \
1048 int desired_access), \
1049 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access))
1051 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
1052 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
1054 DECLARE_EVENT_CLASS(smb3_open_err_class,
1055 TP_PROTO(unsigned int xid,
1061 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
1063 __field(unsigned int, xid)
1065 __field(__u64, sesid)
1066 __field(int, create_options)
1067 __field(int, desired_access)
1073 __entry->sesid = sesid;
1074 __entry->create_options = create_options;
1075 __entry->desired_access = desired_access;
1078 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
1079 __entry->xid, __entry->sesid, __entry->tid,
1080 __entry->create_options, __entry->desired_access, __entry->rc)
1083 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
1084 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
1085 TP_PROTO(unsigned int xid, \
1088 int create_options, \
1089 int desired_access, \
1091 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
1093 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
1094 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
1096 DECLARE_EVENT_CLASS(smb3_open_done_class,
1097 TP_PROTO(unsigned int xid,
1102 int desired_access),
1103 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
1105 __field(unsigned int, xid)
1108 __field(__u64, sesid)
1109 __field(int, create_options)
1110 __field(int, desired_access)
1116 __entry->sesid = sesid;
1117 __entry->create_options = create_options;
1118 __entry->desired_access = desired_access;
1120 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
1121 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
1122 __entry->create_options, __entry->desired_access)
1125 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
1126 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
1127 TP_PROTO(unsigned int xid, \
1131 int create_options, \
1132 int desired_access), \
1133 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
1135 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
1136 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
1139 DECLARE_EVENT_CLASS(smb3_lease_done_class,
1140 TP_PROTO(__u32 lease_state,
1143 __u64 lease_key_low,
1144 __u64 lease_key_high),
1145 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
1147 __field(__u32, lease_state)
1149 __field(__u64, sesid)
1150 __field(__u64, lease_key_low)
1151 __field(__u64, lease_key_high)
1154 __entry->lease_state = lease_state;
1156 __entry->sesid = sesid;
1157 __entry->lease_key_low = lease_key_low;
1158 __entry->lease_key_high = lease_key_high;
1160 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
1161 __entry->sesid, __entry->tid, __entry->lease_key_high,
1162 __entry->lease_key_low, __entry->lease_state)
1165 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
1166 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
1167 TP_PROTO(__u32 lease_state, \
1170 __u64 lease_key_low, \
1171 __u64 lease_key_high), \
1172 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
1174 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
1175 DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
1177 DECLARE_EVENT_CLASS(smb3_lease_err_class,
1178 TP_PROTO(__u32 lease_state,
1181 __u64 lease_key_low,
1182 __u64 lease_key_high,
1184 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
1186 __field(__u32, lease_state)
1188 __field(__u64, sesid)
1189 __field(__u64, lease_key_low)
1190 __field(__u64, lease_key_high)
1194 __entry->lease_state = lease_state;
1196 __entry->sesid = sesid;
1197 __entry->lease_key_low = lease_key_low;
1198 __entry->lease_key_high = lease_key_high;
1201 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
1202 __entry->sesid, __entry->tid, __entry->lease_key_high,
1203 __entry->lease_key_low, __entry->lease_state, __entry->rc)
1206 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
1207 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
1208 TP_PROTO(__u32 lease_state, \
1211 __u64 lease_key_low, \
1212 __u64 lease_key_high, \
1214 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
1216 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
1218 DECLARE_EVENT_CLASS(smb3_connect_class,
1219 TP_PROTO(char *hostname,
1221 const struct __kernel_sockaddr_storage *dst_addr),
1222 TP_ARGS(hostname, conn_id, dst_addr),
1224 __string(hostname, hostname)
1225 __field(__u64, conn_id)
1226 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1229 struct sockaddr_storage *pss = NULL;
1231 __entry->conn_id = conn_id;
1232 pss = (struct sockaddr_storage *)__entry->dst_addr;
1234 __assign_str(hostname);
1236 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
1238 __get_str(hostname),
1242 #define DEFINE_SMB3_CONNECT_EVENT(name) \
1243 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
1244 TP_PROTO(char *hostname, \
1246 const struct __kernel_sockaddr_storage *addr), \
1247 TP_ARGS(hostname, conn_id, addr))
1249 DEFINE_SMB3_CONNECT_EVENT(connect_done);
1250 DEFINE_SMB3_CONNECT_EVENT(smbd_connect_done);
1251 DEFINE_SMB3_CONNECT_EVENT(smbd_connect_err);
1253 DECLARE_EVENT_CLASS(smb3_connect_err_class,
1254 TP_PROTO(char *hostname, __u64 conn_id,
1255 const struct __kernel_sockaddr_storage *dst_addr, int rc),
1256 TP_ARGS(hostname, conn_id, dst_addr, rc),
1258 __string(hostname, hostname)
1259 __field(__u64, conn_id)
1260 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1264 struct sockaddr_storage *pss = NULL;
1266 __entry->conn_id = conn_id;
1268 pss = (struct sockaddr_storage *)__entry->dst_addr;
1270 __assign_str(hostname);
1272 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
1275 __get_str(hostname),
1279 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
1280 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
1281 TP_PROTO(char *hostname, \
1283 const struct __kernel_sockaddr_storage *addr, \
1285 TP_ARGS(hostname, conn_id, addr, rc))
1287 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
1289 DECLARE_EVENT_CLASS(smb3_sess_setup_err_class,
1290 TP_PROTO(char *hostname, char *username, __u64 conn_id,
1291 const struct __kernel_sockaddr_storage *dst_addr, int rc),
1292 TP_ARGS(hostname, username, conn_id, dst_addr, rc),
1294 __string(hostname, hostname)
1295 __string(username, username)
1296 __field(__u64, conn_id)
1297 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
1301 struct sockaddr_storage *pss = NULL;
1303 __entry->conn_id = conn_id;
1305 pss = (struct sockaddr_storage *)__entry->dst_addr;
1307 __assign_str(hostname);
1308 __assign_str(username);
1310 TP_printk("rc=%d user=%s conn_id=0x%llx server=%s addr=%pISpsfc",
1312 __get_str(username),
1314 __get_str(hostname),
1318 #define DEFINE_SMB3_SES_SETUP_ERR_EVENT(name) \
1319 DEFINE_EVENT(smb3_sess_setup_err_class, smb3_##name, \
1320 TP_PROTO(char *hostname, \
1323 const struct __kernel_sockaddr_storage *addr, \
1325 TP_ARGS(hostname, username, conn_id, addr, rc))
1327 DEFINE_SMB3_SES_SETUP_ERR_EVENT(key_expired);
1329 DECLARE_EVENT_CLASS(smb3_reconnect_class,
1330 TP_PROTO(__u64 currmid,
1333 TP_ARGS(currmid, conn_id, hostname),
1335 __field(__u64, currmid)
1336 __field(__u64, conn_id)
1337 __string(hostname, hostname)
1340 __entry->currmid = currmid;
1341 __entry->conn_id = conn_id;
1342 __assign_str(hostname);
1344 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
1346 __get_str(hostname),
1350 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
1351 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
1352 TP_PROTO(__u64 currmid, \
1355 TP_ARGS(currmid, conn_id, hostname))
1357 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
1358 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
1360 DECLARE_EVENT_CLASS(smb3_ses_class,
1361 TP_PROTO(__u64 sesid),
1364 __field(__u64, sesid)
1367 __entry->sesid = sesid;
1369 TP_printk("sid=0x%llx",
1373 #define DEFINE_SMB3_SES_EVENT(name) \
1374 DEFINE_EVENT(smb3_ses_class, smb3_##name, \
1375 TP_PROTO(__u64 sesid), \
1378 DEFINE_SMB3_SES_EVENT(ses_not_found);
1380 DECLARE_EVENT_CLASS(smb3_ioctl_class,
1381 TP_PROTO(unsigned int xid,
1383 unsigned int command),
1384 TP_ARGS(xid, fid, command),
1386 __field(unsigned int, xid)
1388 __field(unsigned int, command)
1393 __entry->command = command;
1395 TP_printk("xid=%u fid=0x%llx ioctl cmd=0x%x",
1396 __entry->xid, __entry->fid, __entry->command)
1399 #define DEFINE_SMB3_IOCTL_EVENT(name) \
1400 DEFINE_EVENT(smb3_ioctl_class, smb3_##name, \
1401 TP_PROTO(unsigned int xid, \
1403 unsigned int command), \
1404 TP_ARGS(xid, fid, command))
1406 DEFINE_SMB3_IOCTL_EVENT(ioctl);
1408 DECLARE_EVENT_CLASS(smb3_shutdown_class,
1409 TP_PROTO(__u32 flags,
1411 TP_ARGS(flags, tid),
1413 __field(__u32, flags)
1417 __entry->flags = flags;
1420 TP_printk("flags=0x%x tid=0x%x",
1421 __entry->flags, __entry->tid)
1424 #define DEFINE_SMB3_SHUTDOWN_EVENT(name) \
1425 DEFINE_EVENT(smb3_shutdown_class, smb3_##name, \
1426 TP_PROTO(__u32 flags, \
1428 TP_ARGS(flags, tid))
1430 DEFINE_SMB3_SHUTDOWN_EVENT(shutdown_enter);
1431 DEFINE_SMB3_SHUTDOWN_EVENT(shutdown_done);
1433 DECLARE_EVENT_CLASS(smb3_shutdown_err_class,
1437 TP_ARGS(rc, flags, tid),
1440 __field(__u32, flags)
1445 __entry->flags = flags;
1448 TP_printk("rc=%d flags=0x%x tid=0x%x",
1449 __entry->rc, __entry->flags, __entry->tid)
1452 #define DEFINE_SMB3_SHUTDOWN_ERR_EVENT(name) \
1453 DEFINE_EVENT(smb3_shutdown_err_class, smb3_##name, \
1457 TP_ARGS(rc, flags, tid))
1459 DEFINE_SMB3_SHUTDOWN_ERR_EVENT(shutdown_err);
1461 DECLARE_EVENT_CLASS(smb3_credit_class,
1462 TP_PROTO(__u64 currmid,
1468 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
1470 __field(__u64, currmid)
1471 __field(__u64, conn_id)
1472 __string(hostname, hostname)
1473 __field(int, credits)
1474 __field(int, credits_to_add)
1475 __field(int, in_flight)
1478 __entry->currmid = currmid;
1479 __entry->conn_id = conn_id;
1480 __assign_str(hostname);
1481 __entry->credits = credits;
1482 __entry->credits_to_add = credits_to_add;
1483 __entry->in_flight = in_flight;
1485 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1486 "credits=%d credit_change=%d in_flight=%d",
1488 __get_str(hostname),
1491 __entry->credits_to_add,
1495 #define DEFINE_SMB3_CREDIT_EVENT(name) \
1496 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
1497 TP_PROTO(__u64 currmid, \
1501 int credits_to_add, \
1503 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1505 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1506 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1507 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1508 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1509 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1510 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1511 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1512 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1513 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1514 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1515 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1516 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1517 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1518 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1521 TRACE_EVENT(smb3_tcon_ref,
1522 TP_PROTO(unsigned int tcon_debug_id, int ref,
1523 enum smb3_tcon_ref_trace trace),
1524 TP_ARGS(tcon_debug_id, ref, trace),
1526 __field(unsigned int, tcon)
1528 __field(enum smb3_tcon_ref_trace, trace)
1531 __entry->tcon = tcon_debug_id;
1533 __entry->trace = trace;
1535 TP_printk("TC=%08x %s r=%u",
1537 __print_symbolic(__entry->trace, smb3_tcon_ref_traces),
1541 TRACE_EVENT(smb3_rw_credits,
1542 TP_PROTO(unsigned int rreq_debug_id,
1543 unsigned int subreq_debug_index,
1544 unsigned int subreq_credits,
1545 unsigned int server_credits,
1546 int server_in_flight,
1548 enum smb3_rw_credits_trace trace),
1549 TP_ARGS(rreq_debug_id, subreq_debug_index, subreq_credits,
1550 server_credits, server_in_flight, credit_change, trace),
1552 __field(unsigned int, rreq_debug_id)
1553 __field(unsigned int, subreq_debug_index)
1554 __field(unsigned int, subreq_credits)
1555 __field(unsigned int, server_credits)
1556 __field(int, in_flight)
1557 __field(int, credit_change)
1558 __field(enum smb3_rw_credits_trace, trace)
1561 __entry->rreq_debug_id = rreq_debug_id;
1562 __entry->subreq_debug_index = subreq_debug_index;
1563 __entry->subreq_credits = subreq_credits;
1564 __entry->server_credits = server_credits;
1565 __entry->in_flight = server_in_flight;
1566 __entry->credit_change = credit_change;
1567 __entry->trace = trace;
1569 TP_printk("R=%08x[%x] %s cred=%u chg=%d pool=%u ifl=%d",
1570 __entry->rreq_debug_id, __entry->subreq_debug_index,
1571 __print_symbolic(__entry->trace, smb3_rw_credits_traces),
1572 __entry->subreq_credits, __entry->credit_change,
1573 __entry->server_credits, __entry->in_flight)
1579 #endif /* _CIFS_TRACE_H */
1581 #undef TRACE_INCLUDE_PATH
1582 #define TRACE_INCLUDE_PATH .
1583 #define TRACE_INCLUDE_FILE trace
1584 #include <trace/define_trace.h>