brintos

brintos / linux-shallow public Read only

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