1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2018, Microsoft Corporation.
8 #define TRACE_SYSTEM cifs
10 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
13 #include <linux/tracepoint.h>
14 #include <linux/net.h>
15 #include <linux/inet.h>
18 * Please use this 3-part article as a reference for writing new tracepoints:
19 * https://lwn.net/Articles/379903/
22 /* For logging errors in read or write */
23 DECLARE_EVENT_CLASS(smb3_rw_err_class,
24 TP_PROTO(unsigned int xid,
31 TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
33 __field(unsigned int, xid)
37 __field(__u64, offset)
45 __entry->sesid = sesid;
46 __entry->offset = offset;
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,
52 __entry->offset, __entry->len, __entry->rc)
55 #define DEFINE_SMB3_RW_ERR_EVENT(name) \
56 DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \
57 TP_PROTO(unsigned int xid, \
64 TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
66 DEFINE_SMB3_RW_ERR_EVENT(write_err);
67 DEFINE_SMB3_RW_ERR_EVENT(read_err);
68 DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
69 DEFINE_SMB3_RW_ERR_EVENT(zero_err);
70 DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
73 /* For logging successful read or write */
74 DECLARE_EVENT_CLASS(smb3_rw_done_class,
75 TP_PROTO(unsigned int xid,
81 TP_ARGS(xid, fid, tid, sesid, offset, len),
83 __field(unsigned int, xid)
87 __field(__u64, offset)
94 __entry->sesid = sesid;
95 __entry->offset = offset;
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,
100 __entry->offset, __entry->len)
103 #define DEFINE_SMB3_RW_DONE_EVENT(name) \
104 DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \
105 TP_PROTO(unsigned int xid, \
111 TP_ARGS(xid, fid, tid, sesid, offset, len))
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);
116 DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
117 DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
118 DEFINE_SMB3_RW_DONE_EVENT(write_done);
119 DEFINE_SMB3_RW_DONE_EVENT(read_done);
120 DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
121 DEFINE_SMB3_RW_DONE_EVENT(zero_done);
122 DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
124 /* For logging successful set EOF (truncate) */
125 DECLARE_EVENT_CLASS(smb3_eof_class,
126 TP_PROTO(unsigned int xid,
131 TP_ARGS(xid, fid, tid, sesid, offset),
133 __field(unsigned int, xid)
136 __field(__u64, sesid)
137 __field(__u64, offset)
143 __entry->sesid = sesid;
144 __entry->offset = offset;
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,
151 #define DEFINE_SMB3_EOF_EVENT(name) \
152 DEFINE_EVENT(smb3_eof_class, smb3_##name, \
153 TP_PROTO(unsigned int xid, \
158 TP_ARGS(xid, fid, tid, sesid, offset))
160 DEFINE_SMB3_EOF_EVENT(set_eof);
163 * For handle based calls other than read and write, and get/set info
165 DECLARE_EVENT_CLASS(smb3_fd_class,
166 TP_PROTO(unsigned int xid,
170 TP_ARGS(xid, fid, tid, sesid),
172 __field(unsigned int, xid)
175 __field(__u64, sesid)
181 __entry->sesid = sesid;
183 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
184 __entry->xid, __entry->sesid, __entry->tid, __entry->fid)
187 #define DEFINE_SMB3_FD_EVENT(name) \
188 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
189 TP_PROTO(unsigned int xid, \
193 TP_ARGS(xid, fid, tid, sesid))
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);
199 DEFINE_SMB3_FD_EVENT(oplock_not_found);
201 DECLARE_EVENT_CLASS(smb3_fd_err_class,
202 TP_PROTO(unsigned int xid,
207 TP_ARGS(xid, fid, tid, sesid, rc),
209 __field(unsigned int, xid)
212 __field(__u64, sesid)
219 __entry->sesid = sesid;
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,
227 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
228 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
229 TP_PROTO(unsigned int xid, \
234 TP_ARGS(xid, fid, tid, sesid, rc))
236 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
237 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
238 DEFINE_SMB3_FD_ERR_EVENT(close_err);
241 * For handle based query/set info calls
243 DECLARE_EVENT_CLASS(smb3_inf_enter_class,
244 TP_PROTO(unsigned int xid,
250 TP_ARGS(xid, fid, tid, sesid, infclass, type),
252 __field(unsigned int, xid)
255 __field(__u64, sesid)
256 __field(__u8, infclass)
263 __entry->sesid = sesid;
264 __entry->infclass = infclass;
265 __entry->type = type;
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)
272 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
273 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
274 TP_PROTO(unsigned int xid, \
280 TP_ARGS(xid, fid, tid, sesid, infclass, type))
282 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
283 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
284 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
285 DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
287 DECLARE_EVENT_CLASS(smb3_inf_err_class,
288 TP_PROTO(unsigned int xid,
295 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
297 __field(unsigned int, xid)
300 __field(__u64, sesid)
301 __field(__u8, infclass)
309 __entry->sesid = sesid;
310 __entry->infclass = infclass;
311 __entry->type = type;
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,
316 __entry->infclass, __entry->type, __entry->rc)
319 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
320 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
321 TP_PROTO(unsigned int xid, \
328 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
330 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
331 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
332 DEFINE_SMB3_INF_ERR_EVENT(notify_err);
333 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
335 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
336 TP_PROTO(unsigned int xid,
339 const char *full_path),
340 TP_ARGS(xid, tid, sesid, full_path),
342 __field(unsigned int, xid)
344 __field(__u64, sesid)
345 __string(path, full_path)
350 __entry->sesid = sesid;
351 __assign_str(path, full_path);
353 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
354 __entry->xid, __entry->sesid, __entry->tid,
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, \
363 const char *full_path), \
364 TP_ARGS(xid, tid, sesid, full_path))
366 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
367 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
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);
377 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
378 TP_PROTO(unsigned int xid,
381 TP_ARGS(xid, tid, sesid),
383 __field(unsigned int, xid)
385 __field(__u64, sesid)
390 __entry->sesid = sesid;
392 TP_printk("xid=%u sid=0x%llx tid=0x%x",
393 __entry->xid, __entry->sesid, __entry->tid)
396 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
397 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
398 TP_PROTO(unsigned int xid, \
401 TP_ARGS(xid, tid, sesid))
403 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
404 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
405 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
406 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
407 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
408 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
409 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
410 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
411 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
414 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
415 TP_PROTO(unsigned int xid,
419 TP_ARGS(xid, tid, sesid, rc),
421 __field(unsigned int, xid)
423 __field(__u64, sesid)
429 __entry->sesid = sesid;
432 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
433 __entry->xid, __entry->sesid, __entry->tid,
437 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
438 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
439 TP_PROTO(unsigned int xid, \
443 TP_ARGS(xid, tid, sesid, rc))
445 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
446 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
447 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
448 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
449 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
450 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
451 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
452 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
453 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
456 * For logging SMB3 Status code and Command for responses which return errors
458 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
465 TP_ARGS(tid, sesid, cmd, mid, status, rc),
468 __field(__u64, sesid)
471 __field(__u32, status)
476 __entry->sesid = sesid;
479 __entry->status = status;
482 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
483 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
484 __entry->status, __entry->rc)
487 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
488 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
489 TP_PROTO(__u32 tid, \
495 TP_ARGS(tid, sesid, cmd, mid, status, rc))
497 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
499 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
504 TP_ARGS(tid, sesid, cmd, mid),
507 __field(__u64, sesid)
513 __entry->sesid = sesid;
517 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
518 __entry->sesid, __entry->tid,
519 __entry->cmd, __entry->mid)
522 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
523 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
524 TP_PROTO(__u32 tid, \
528 TP_ARGS(tid, sesid, cmd, mid))
530 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
531 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
532 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
534 DECLARE_EVENT_CLASS(smb3_mid_class,
538 unsigned long when_sent,
539 unsigned long when_received),
540 TP_ARGS(cmd, mid, pid, when_sent, when_received),
545 __field(unsigned long, when_sent)
546 __field(unsigned long, when_received)
552 __entry->when_sent = when_sent;
553 __entry->when_received = when_received;
555 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
556 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
557 __entry->when_received)
560 #define DEFINE_SMB3_MID_EVENT(name) \
561 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
562 TP_PROTO(__u16 cmd, \
565 unsigned long when_sent, \
566 unsigned long when_received), \
567 TP_ARGS(cmd, mid, pid, when_sent, when_received))
569 DEFINE_SMB3_MID_EVENT(slow_rsp);
571 DECLARE_EVENT_CLASS(smb3_exit_err_class,
572 TP_PROTO(unsigned int xid,
573 const char *func_name,
575 TP_ARGS(xid, func_name, rc),
577 __field(unsigned int, xid)
578 __string(func_name, func_name)
583 __assign_str(func_name, func_name);
586 TP_printk("\t%s: xid=%u rc=%d",
587 __get_str(func_name), __entry->xid, __entry->rc)
590 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
591 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
592 TP_PROTO(unsigned int xid, \
593 const char *func_name, \
595 TP_ARGS(xid, func_name, rc))
597 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
600 DECLARE_EVENT_CLASS(smb3_sync_err_class,
601 TP_PROTO(unsigned long ino,
605 __field(unsigned long, ino)
612 TP_printk("\tino=%lu rc=%d",
613 __entry->ino, __entry->rc)
616 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
617 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
618 TP_PROTO(unsigned long ino, \
622 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
623 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
626 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
627 TP_PROTO(unsigned int xid,
628 const char *func_name),
629 TP_ARGS(xid, func_name),
631 __field(unsigned int, xid)
632 __string(func_name, func_name)
636 __assign_str(func_name, func_name);
638 TP_printk("\t%s: xid=%u",
639 __get_str(func_name), __entry->xid)
642 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
643 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
644 TP_PROTO(unsigned int xid, \
645 const char *func_name), \
646 TP_ARGS(xid, func_name))
648 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
649 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
652 * For SMB2/SMB3 tree connect
655 DECLARE_EVENT_CLASS(smb3_tcon_class,
656 TP_PROTO(unsigned int xid,
659 const char *unc_name,
661 TP_ARGS(xid, tid, sesid, unc_name, rc),
663 __field(unsigned int, xid)
665 __field(__u64, sesid)
666 __string(name, unc_name)
672 __entry->sesid = sesid;
673 __assign_str(name, unc_name);
676 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
677 __entry->xid, __entry->sesid, __entry->tid,
678 __get_str(name), __entry->rc)
681 #define DEFINE_SMB3_TCON_EVENT(name) \
682 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
683 TP_PROTO(unsigned int xid, \
686 const char *unc_name, \
688 TP_ARGS(xid, tid, sesid, unc_name, rc))
690 DEFINE_SMB3_TCON_EVENT(tcon);
694 * For smb2/smb3 open (including create and mkdir) calls
697 DECLARE_EVENT_CLASS(smb3_open_enter_class,
698 TP_PROTO(unsigned int xid,
703 TP_ARGS(xid, tid, sesid, create_options, desired_access),
705 __field(unsigned int, xid)
707 __field(__u64, sesid)
708 __field(int, create_options)
709 __field(int, desired_access)
714 __entry->sesid = sesid;
715 __entry->create_options = create_options;
716 __entry->desired_access = desired_access;
718 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
719 __entry->xid, __entry->sesid, __entry->tid,
720 __entry->create_options, __entry->desired_access)
723 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
724 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
725 TP_PROTO(unsigned int xid, \
728 int create_options, \
729 int desired_access), \
730 TP_ARGS(xid, tid, sesid, create_options, desired_access))
732 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
733 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
735 DECLARE_EVENT_CLASS(smb3_open_err_class,
736 TP_PROTO(unsigned int xid,
742 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
744 __field(unsigned int, xid)
746 __field(__u64, sesid)
747 __field(int, create_options)
748 __field(int, desired_access)
754 __entry->sesid = sesid;
755 __entry->create_options = create_options;
756 __entry->desired_access = desired_access;
759 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
760 __entry->xid, __entry->sesid, __entry->tid,
761 __entry->create_options, __entry->desired_access, __entry->rc)
764 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
765 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
766 TP_PROTO(unsigned int xid, \
769 int create_options, \
770 int desired_access, \
772 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
774 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
775 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
777 DECLARE_EVENT_CLASS(smb3_open_done_class,
778 TP_PROTO(unsigned int xid,
784 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
786 __field(unsigned int, xid)
789 __field(__u64, sesid)
790 __field(int, create_options)
791 __field(int, desired_access)
797 __entry->sesid = sesid;
798 __entry->create_options = create_options;
799 __entry->desired_access = desired_access;
801 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
802 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
803 __entry->create_options, __entry->desired_access)
806 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
807 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
808 TP_PROTO(unsigned int xid, \
812 int create_options, \
813 int desired_access), \
814 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
816 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
817 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
820 DECLARE_EVENT_CLASS(smb3_lease_done_class,
821 TP_PROTO(__u32 lease_state,
825 __u64 lease_key_high),
826 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
828 __field(__u32, lease_state)
830 __field(__u64, sesid)
831 __field(__u64, lease_key_low)
832 __field(__u64, lease_key_high)
835 __entry->lease_state = lease_state;
837 __entry->sesid = sesid;
838 __entry->lease_key_low = lease_key_low;
839 __entry->lease_key_high = lease_key_high;
841 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
842 __entry->sesid, __entry->tid, __entry->lease_key_high,
843 __entry->lease_key_low, __entry->lease_state)
846 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
847 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
848 TP_PROTO(__u32 lease_state, \
851 __u64 lease_key_low, \
852 __u64 lease_key_high), \
853 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
855 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
856 DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
858 DECLARE_EVENT_CLASS(smb3_lease_err_class,
859 TP_PROTO(__u32 lease_state,
863 __u64 lease_key_high,
865 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
867 __field(__u32, lease_state)
869 __field(__u64, sesid)
870 __field(__u64, lease_key_low)
871 __field(__u64, lease_key_high)
875 __entry->lease_state = lease_state;
877 __entry->sesid = sesid;
878 __entry->lease_key_low = lease_key_low;
879 __entry->lease_key_high = lease_key_high;
882 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
883 __entry->sesid, __entry->tid, __entry->lease_key_high,
884 __entry->lease_key_low, __entry->lease_state, __entry->rc)
887 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
888 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
889 TP_PROTO(__u32 lease_state, \
892 __u64 lease_key_low, \
893 __u64 lease_key_high, \
895 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
897 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
899 DECLARE_EVENT_CLASS(smb3_connect_class,
900 TP_PROTO(char *hostname,
902 const struct __kernel_sockaddr_storage *dst_addr),
903 TP_ARGS(hostname, conn_id, dst_addr),
905 __string(hostname, hostname)
906 __field(__u64, conn_id)
907 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
910 struct sockaddr_storage *pss = NULL;
912 __entry->conn_id = conn_id;
913 pss = (struct sockaddr_storage *)__entry->dst_addr;
915 __assign_str(hostname, hostname);
917 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
923 #define DEFINE_SMB3_CONNECT_EVENT(name) \
924 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
925 TP_PROTO(char *hostname, \
927 const struct __kernel_sockaddr_storage *addr), \
928 TP_ARGS(hostname, conn_id, addr))
930 DEFINE_SMB3_CONNECT_EVENT(connect_done);
932 DECLARE_EVENT_CLASS(smb3_connect_err_class,
933 TP_PROTO(char *hostname, __u64 conn_id,
934 const struct __kernel_sockaddr_storage *dst_addr, int rc),
935 TP_ARGS(hostname, conn_id, dst_addr, rc),
937 __string(hostname, hostname)
938 __field(__u64, conn_id)
939 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
943 struct sockaddr_storage *pss = NULL;
945 __entry->conn_id = conn_id;
947 pss = (struct sockaddr_storage *)__entry->dst_addr;
949 __assign_str(hostname, hostname);
951 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
958 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
959 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
960 TP_PROTO(char *hostname, \
962 const struct __kernel_sockaddr_storage *addr, \
964 TP_ARGS(hostname, conn_id, addr, rc))
966 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
968 DECLARE_EVENT_CLASS(smb3_reconnect_class,
969 TP_PROTO(__u64 currmid,
972 TP_ARGS(currmid, conn_id, hostname),
974 __field(__u64, currmid)
975 __field(__u64, conn_id)
976 __string(hostname, hostname)
979 __entry->currmid = currmid;
980 __entry->conn_id = conn_id;
981 __assign_str(hostname, hostname);
983 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
989 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
990 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
991 TP_PROTO(__u64 currmid, \
994 TP_ARGS(currmid, conn_id, hostname))
996 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
997 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
999 DECLARE_EVENT_CLASS(smb3_credit_class,
1000 TP_PROTO(__u64 currmid,
1006 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
1008 __field(__u64, currmid)
1009 __field(__u64, conn_id)
1010 __string(hostname, hostname)
1011 __field(int, credits)
1012 __field(int, credits_to_add)
1013 __field(int, in_flight)
1016 __entry->currmid = currmid;
1017 __entry->conn_id = conn_id;
1018 __assign_str(hostname, hostname);
1019 __entry->credits = credits;
1020 __entry->credits_to_add = credits_to_add;
1021 __entry->in_flight = in_flight;
1023 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1024 "credits=%d credit_change=%d in_flight=%d",
1026 __get_str(hostname),
1029 __entry->credits_to_add,
1033 #define DEFINE_SMB3_CREDIT_EVENT(name) \
1034 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
1035 TP_PROTO(__u64 currmid, \
1039 int credits_to_add, \
1041 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1043 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1044 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1045 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1046 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1047 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1048 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1049 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1050 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1051 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1052 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1053 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1054 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1055 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1056 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1058 #endif /* _CIFS_TRACE_H */
1060 #undef TRACE_INCLUDE_PATH
1061 #define TRACE_INCLUDE_PATH .
1062 #define TRACE_INCLUDE_FILE trace
1063 #include <trace/define_trace.h>