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);
125 * For handle based calls other than read and write, and get/set info
127 DECLARE_EVENT_CLASS(smb3_fd_class,
128 TP_PROTO(unsigned int xid,
132 TP_ARGS(xid, fid, tid, sesid),
134 __field(unsigned int, xid)
137 __field(__u64, sesid)
143 __entry->sesid = sesid;
145 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
146 __entry->xid, __entry->sesid, __entry->tid, __entry->fid)
149 #define DEFINE_SMB3_FD_EVENT(name) \
150 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
151 TP_PROTO(unsigned int xid, \
155 TP_ARGS(xid, fid, tid, sesid))
157 DEFINE_SMB3_FD_EVENT(flush_enter);
158 DEFINE_SMB3_FD_EVENT(flush_done);
159 DEFINE_SMB3_FD_EVENT(close_enter);
160 DEFINE_SMB3_FD_EVENT(close_done);
162 DECLARE_EVENT_CLASS(smb3_fd_err_class,
163 TP_PROTO(unsigned int xid,
168 TP_ARGS(xid, fid, tid, sesid, rc),
170 __field(unsigned int, xid)
173 __field(__u64, sesid)
180 __entry->sesid = sesid;
183 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
184 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
188 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
189 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
190 TP_PROTO(unsigned int xid, \
195 TP_ARGS(xid, fid, tid, sesid, rc))
197 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
198 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
199 DEFINE_SMB3_FD_ERR_EVENT(close_err);
202 * For handle based query/set info calls
204 DECLARE_EVENT_CLASS(smb3_inf_enter_class,
205 TP_PROTO(unsigned int xid,
211 TP_ARGS(xid, fid, tid, sesid, infclass, type),
213 __field(unsigned int, xid)
216 __field(__u64, sesid)
217 __field(__u8, infclass)
224 __entry->sesid = sesid;
225 __entry->infclass = infclass;
226 __entry->type = type;
228 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
229 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
230 __entry->infclass, __entry->type)
233 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
234 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
235 TP_PROTO(unsigned int xid, \
241 TP_ARGS(xid, fid, tid, sesid, infclass, type))
243 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
244 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
245 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
246 DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
248 DECLARE_EVENT_CLASS(smb3_inf_err_class,
249 TP_PROTO(unsigned int xid,
256 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
258 __field(unsigned int, xid)
261 __field(__u64, sesid)
262 __field(__u8, infclass)
270 __entry->sesid = sesid;
271 __entry->infclass = infclass;
272 __entry->type = type;
275 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
276 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
277 __entry->infclass, __entry->type, __entry->rc)
280 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
281 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
282 TP_PROTO(unsigned int xid, \
289 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
291 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
292 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
293 DEFINE_SMB3_INF_ERR_EVENT(notify_err);
294 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
296 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
297 TP_PROTO(unsigned int xid,
300 const char *full_path),
301 TP_ARGS(xid, tid, sesid, full_path),
303 __field(unsigned int, xid)
305 __field(__u64, sesid)
306 __string(path, full_path)
311 __entry->sesid = sesid;
312 __assign_str(path, full_path);
314 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
315 __entry->xid, __entry->sesid, __entry->tid,
319 #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
320 DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \
321 TP_PROTO(unsigned int xid, \
324 const char *full_path), \
325 TP_ARGS(xid, tid, sesid, full_path))
327 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
328 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
329 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
330 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
331 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
332 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
333 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
334 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
335 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
338 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
339 TP_PROTO(unsigned int xid,
342 TP_ARGS(xid, tid, sesid),
344 __field(unsigned int, xid)
346 __field(__u64, sesid)
351 __entry->sesid = sesid;
353 TP_printk("xid=%u sid=0x%llx tid=0x%x",
354 __entry->xid, __entry->sesid, __entry->tid)
357 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
358 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
359 TP_PROTO(unsigned int xid, \
362 TP_ARGS(xid, tid, sesid))
364 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
365 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
366 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
367 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
368 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
369 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
370 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
371 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
372 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
375 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
376 TP_PROTO(unsigned int xid,
380 TP_ARGS(xid, tid, sesid, rc),
382 __field(unsigned int, xid)
384 __field(__u64, sesid)
390 __entry->sesid = sesid;
393 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
394 __entry->xid, __entry->sesid, __entry->tid,
398 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
399 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
400 TP_PROTO(unsigned int xid, \
404 TP_ARGS(xid, tid, sesid, rc))
406 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
407 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
408 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
409 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
410 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
411 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
412 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
413 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
414 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
417 * For logging SMB3 Status code and Command for responses which return errors
419 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
426 TP_ARGS(tid, sesid, cmd, mid, status, rc),
429 __field(__u64, sesid)
432 __field(__u32, status)
437 __entry->sesid = sesid;
440 __entry->status = status;
443 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
444 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
445 __entry->status, __entry->rc)
448 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
449 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
450 TP_PROTO(__u32 tid, \
456 TP_ARGS(tid, sesid, cmd, mid, status, rc))
458 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
460 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
465 TP_ARGS(tid, sesid, cmd, mid),
468 __field(__u64, sesid)
474 __entry->sesid = sesid;
478 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
479 __entry->sesid, __entry->tid,
480 __entry->cmd, __entry->mid)
483 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
484 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
485 TP_PROTO(__u32 tid, \
489 TP_ARGS(tid, sesid, cmd, mid))
491 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
492 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
493 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
495 DECLARE_EVENT_CLASS(smb3_mid_class,
499 unsigned long when_sent,
500 unsigned long when_received),
501 TP_ARGS(cmd, mid, pid, when_sent, when_received),
506 __field(unsigned long, when_sent)
507 __field(unsigned long, when_received)
513 __entry->when_sent = when_sent;
514 __entry->when_received = when_received;
516 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
517 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
518 __entry->when_received)
521 #define DEFINE_SMB3_MID_EVENT(name) \
522 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
523 TP_PROTO(__u16 cmd, \
526 unsigned long when_sent, \
527 unsigned long when_received), \
528 TP_ARGS(cmd, mid, pid, when_sent, when_received))
530 DEFINE_SMB3_MID_EVENT(slow_rsp);
532 DECLARE_EVENT_CLASS(smb3_exit_err_class,
533 TP_PROTO(unsigned int xid,
534 const char *func_name,
536 TP_ARGS(xid, func_name, rc),
538 __field(unsigned int, xid)
539 __string(func_name, func_name)
544 __assign_str(func_name, func_name);
547 TP_printk("\t%s: xid=%u rc=%d",
548 __get_str(func_name), __entry->xid, __entry->rc)
551 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
552 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
553 TP_PROTO(unsigned int xid, \
554 const char *func_name, \
556 TP_ARGS(xid, func_name, rc))
558 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
561 DECLARE_EVENT_CLASS(smb3_sync_err_class,
562 TP_PROTO(unsigned long ino,
566 __field(unsigned long, ino)
573 TP_printk("\tino=%lu rc=%d",
574 __entry->ino, __entry->rc)
577 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
578 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
579 TP_PROTO(unsigned long ino, \
583 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
584 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
587 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
588 TP_PROTO(unsigned int xid,
589 const char *func_name),
590 TP_ARGS(xid, func_name),
592 __field(unsigned int, xid)
593 __string(func_name, func_name)
597 __assign_str(func_name, func_name);
599 TP_printk("\t%s: xid=%u",
600 __get_str(func_name), __entry->xid)
603 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
604 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
605 TP_PROTO(unsigned int xid, \
606 const char *func_name), \
607 TP_ARGS(xid, func_name))
609 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
610 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
613 * For SMB2/SMB3 tree connect
616 DECLARE_EVENT_CLASS(smb3_tcon_class,
617 TP_PROTO(unsigned int xid,
620 const char *unc_name,
622 TP_ARGS(xid, tid, sesid, unc_name, rc),
624 __field(unsigned int, xid)
626 __field(__u64, sesid)
627 __string(name, unc_name)
633 __entry->sesid = sesid;
634 __assign_str(name, unc_name);
637 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
638 __entry->xid, __entry->sesid, __entry->tid,
639 __get_str(name), __entry->rc)
642 #define DEFINE_SMB3_TCON_EVENT(name) \
643 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
644 TP_PROTO(unsigned int xid, \
647 const char *unc_name, \
649 TP_ARGS(xid, tid, sesid, unc_name, rc))
651 DEFINE_SMB3_TCON_EVENT(tcon);
655 * For smb2/smb3 open (including create and mkdir) calls
658 DECLARE_EVENT_CLASS(smb3_open_enter_class,
659 TP_PROTO(unsigned int xid,
664 TP_ARGS(xid, tid, sesid, create_options, desired_access),
666 __field(unsigned int, xid)
668 __field(__u64, sesid)
669 __field(int, create_options)
670 __field(int, desired_access)
675 __entry->sesid = sesid;
676 __entry->create_options = create_options;
677 __entry->desired_access = desired_access;
679 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
680 __entry->xid, __entry->sesid, __entry->tid,
681 __entry->create_options, __entry->desired_access)
684 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
685 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
686 TP_PROTO(unsigned int xid, \
689 int create_options, \
690 int desired_access), \
691 TP_ARGS(xid, tid, sesid, create_options, desired_access))
693 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
694 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
696 DECLARE_EVENT_CLASS(smb3_open_err_class,
697 TP_PROTO(unsigned int xid,
703 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
705 __field(unsigned int, xid)
707 __field(__u64, sesid)
708 __field(int, create_options)
709 __field(int, desired_access)
715 __entry->sesid = sesid;
716 __entry->create_options = create_options;
717 __entry->desired_access = desired_access;
720 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
721 __entry->xid, __entry->sesid, __entry->tid,
722 __entry->create_options, __entry->desired_access, __entry->rc)
725 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
726 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
727 TP_PROTO(unsigned int xid, \
730 int create_options, \
731 int desired_access, \
733 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
735 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
736 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
738 DECLARE_EVENT_CLASS(smb3_open_done_class,
739 TP_PROTO(unsigned int xid,
745 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
747 __field(unsigned int, xid)
750 __field(__u64, sesid)
751 __field(int, create_options)
752 __field(int, desired_access)
758 __entry->sesid = sesid;
759 __entry->create_options = create_options;
760 __entry->desired_access = desired_access;
762 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
763 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
764 __entry->create_options, __entry->desired_access)
767 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
768 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
769 TP_PROTO(unsigned int xid, \
773 int create_options, \
774 int desired_access), \
775 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
777 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
778 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
781 DECLARE_EVENT_CLASS(smb3_lease_done_class,
782 TP_PROTO(__u32 lease_state,
786 __u64 lease_key_high),
787 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
789 __field(__u32, lease_state)
791 __field(__u64, sesid)
792 __field(__u64, lease_key_low)
793 __field(__u64, lease_key_high)
796 __entry->lease_state = lease_state;
798 __entry->sesid = sesid;
799 __entry->lease_key_low = lease_key_low;
800 __entry->lease_key_high = lease_key_high;
802 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
803 __entry->sesid, __entry->tid, __entry->lease_key_high,
804 __entry->lease_key_low, __entry->lease_state)
807 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
808 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
809 TP_PROTO(__u32 lease_state, \
812 __u64 lease_key_low, \
813 __u64 lease_key_high), \
814 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
816 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
818 DECLARE_EVENT_CLASS(smb3_lease_err_class,
819 TP_PROTO(__u32 lease_state,
823 __u64 lease_key_high,
825 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
827 __field(__u32, lease_state)
829 __field(__u64, sesid)
830 __field(__u64, lease_key_low)
831 __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;
842 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
843 __entry->sesid, __entry->tid, __entry->lease_key_high,
844 __entry->lease_key_low, __entry->lease_state, __entry->rc)
847 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
848 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
849 TP_PROTO(__u32 lease_state, \
852 __u64 lease_key_low, \
853 __u64 lease_key_high, \
855 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
857 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
859 DECLARE_EVENT_CLASS(smb3_connect_class,
860 TP_PROTO(char *hostname,
862 const struct __kernel_sockaddr_storage *dst_addr),
863 TP_ARGS(hostname, conn_id, dst_addr),
865 __string(hostname, hostname)
866 __field(__u64, conn_id)
867 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
870 struct sockaddr_storage *pss = NULL;
872 __entry->conn_id = conn_id;
873 pss = (struct sockaddr_storage *)__entry->dst_addr;
875 __assign_str(hostname, hostname);
877 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
883 #define DEFINE_SMB3_CONNECT_EVENT(name) \
884 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
885 TP_PROTO(char *hostname, \
887 const struct __kernel_sockaddr_storage *addr), \
888 TP_ARGS(hostname, conn_id, addr))
890 DEFINE_SMB3_CONNECT_EVENT(connect_done);
892 DECLARE_EVENT_CLASS(smb3_connect_err_class,
893 TP_PROTO(char *hostname, __u64 conn_id,
894 const struct __kernel_sockaddr_storage *dst_addr, int rc),
895 TP_ARGS(hostname, conn_id, dst_addr, rc),
897 __string(hostname, hostname)
898 __field(__u64, conn_id)
899 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
903 struct sockaddr_storage *pss = NULL;
905 __entry->conn_id = conn_id;
907 pss = (struct sockaddr_storage *)__entry->dst_addr;
909 __assign_str(hostname, hostname);
911 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
918 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
919 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
920 TP_PROTO(char *hostname, \
922 const struct __kernel_sockaddr_storage *addr, \
924 TP_ARGS(hostname, conn_id, addr, rc))
926 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
928 DECLARE_EVENT_CLASS(smb3_reconnect_class,
929 TP_PROTO(__u64 currmid,
932 TP_ARGS(currmid, conn_id, hostname),
934 __field(__u64, currmid)
935 __field(__u64, conn_id)
936 __string(hostname, hostname)
939 __entry->currmid = currmid;
940 __entry->conn_id = conn_id;
941 __assign_str(hostname, hostname);
943 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
949 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
950 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
951 TP_PROTO(__u64 currmid, \
954 TP_ARGS(currmid, conn_id, hostname))
956 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
957 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
959 DECLARE_EVENT_CLASS(smb3_credit_class,
960 TP_PROTO(__u64 currmid,
966 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
968 __field(__u64, currmid)
969 __field(__u64, conn_id)
970 __string(hostname, hostname)
971 __field(int, credits)
972 __field(int, credits_to_add)
973 __field(int, in_flight)
976 __entry->currmid = currmid;
977 __entry->conn_id = conn_id;
978 __assign_str(hostname, hostname);
979 __entry->credits = credits;
980 __entry->credits_to_add = credits_to_add;
981 __entry->in_flight = in_flight;
983 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
984 "credits=%d credit_change=%d in_flight=%d",
989 __entry->credits_to_add,
993 #define DEFINE_SMB3_CREDIT_EVENT(name) \
994 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
995 TP_PROTO(__u64 currmid, \
999 int credits_to_add, \
1001 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1003 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1004 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1005 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1006 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1007 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1008 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1009 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1010 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1011 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1012 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1013 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1014 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1015 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1016 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1018 #endif /* _CIFS_TRACE_H */
1020 #undef TRACE_INCLUDE_PATH
1021 #define TRACE_INCLUDE_PATH .
1022 #define TRACE_INCLUDE_FILE trace
1023 #include <trace/define_trace.h>