2018-05-18 05:16:55 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright ( C ) 2018 , Microsoft Corporation .
*
* Author ( s ) : Steve French < stfrench @ microsoft . com >
*/
# undef TRACE_SYSTEM
# define TRACE_SYSTEM cifs
# if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
# define _CIFS_TRACE_H
# include <linux/tracepoint.h>
/* For logging errors in read or write */
DECLARE_EVENT_CLASS ( smb3_rw_err_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
__u64 offset ,
__u32 len ,
int rc ) ,
TP_ARGS ( xid , fid , tid , sesid , offset , len , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u64 , offset )
__field ( __u32 , len )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > offset = offset ;
__entry - > len = len ;
__entry - > rc = rc ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " \t xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
2018-05-18 05:16:55 +03:00
__entry - > offset , __entry - > len , __entry - > rc )
)
# define DEFINE_SMB3_RW_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_rw_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
__u64 offset , \
__u32 len , \
int rc ) , \
TP_ARGS ( xid , fid , tid , sesid , offset , len , rc ) )
DEFINE_SMB3_RW_ERR_EVENT ( write_err ) ;
DEFINE_SMB3_RW_ERR_EVENT ( read_err ) ;
2019-02-25 22:51:11 +03:00
DEFINE_SMB3_RW_ERR_EVENT ( query_dir_err ) ;
2019-03-13 09:41:49 +03:00
DEFINE_SMB3_RW_ERR_EVENT ( zero_err ) ;
DEFINE_SMB3_RW_ERR_EVENT ( falloc_err ) ;
2018-05-18 05:16:55 +03:00
/* For logging successful read or write */
DECLARE_EVENT_CLASS ( smb3_rw_done_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
__u64 offset ,
__u32 len ) ,
TP_ARGS ( xid , fid , tid , sesid , offset , len ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u64 , offset )
__field ( __u32 , len )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > offset = offset ;
__entry - > len = len ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
2018-05-18 05:16:55 +03:00
__entry - > offset , __entry - > len )
)
# define DEFINE_SMB3_RW_DONE_EVENT(name) \
DEFINE_EVENT ( smb3_rw_done_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
__u64 offset , \
__u32 len ) , \
TP_ARGS ( xid , fid , tid , sesid , offset , len ) )
2019-02-25 09:52:43 +03:00
DEFINE_SMB3_RW_DONE_EVENT ( write_enter ) ;
DEFINE_SMB3_RW_DONE_EVENT ( read_enter ) ;
DEFINE_SMB3_RW_DONE_EVENT ( query_dir_enter ) ;
2019-03-13 09:41:49 +03:00
DEFINE_SMB3_RW_DONE_EVENT ( zero_enter ) ;
DEFINE_SMB3_RW_DONE_EVENT ( falloc_enter ) ;
2018-05-18 05:16:55 +03:00
DEFINE_SMB3_RW_DONE_EVENT ( write_done ) ;
DEFINE_SMB3_RW_DONE_EVENT ( read_done ) ;
2019-02-25 22:51:11 +03:00
DEFINE_SMB3_RW_DONE_EVENT ( query_dir_done ) ;
2019-03-13 09:41:49 +03:00
DEFINE_SMB3_RW_DONE_EVENT ( zero_done ) ;
DEFINE_SMB3_RW_DONE_EVENT ( falloc_done ) ;
2018-05-18 05:16:55 +03:00
/*
* For handle based calls other than read and write , and get / set info
*/
2019-09-04 02:35:42 +03:00
DECLARE_EVENT_CLASS ( smb3_fd_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ) ,
TP_ARGS ( xid , fid , tid , sesid ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
) ,
TP_printk ( " \t xid=%u sid=0x%llx tid=0x%x fid=0x%llx " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid )
)
# define DEFINE_SMB3_FD_EVENT(name) \
DEFINE_EVENT ( smb3_fd_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid ) , \
TP_ARGS ( xid , fid , tid , sesid ) )
DEFINE_SMB3_FD_EVENT ( flush_enter ) ;
DEFINE_SMB3_FD_EVENT ( flush_done ) ;
DEFINE_SMB3_FD_EVENT ( close_enter ) ;
DEFINE_SMB3_FD_EVENT ( close_done ) ;
2018-05-18 05:16:55 +03:00
DECLARE_EVENT_CLASS ( smb3_fd_err_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
int rc ) ,
TP_ARGS ( xid , fid , tid , sesid , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > rc = rc ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " \t xid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
2018-05-18 05:16:55 +03:00
__entry - > rc )
)
# define DEFINE_SMB3_FD_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_fd_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
int rc ) , \
TP_ARGS ( xid , fid , tid , sesid , rc ) )
DEFINE_SMB3_FD_ERR_EVENT ( flush_err ) ;
DEFINE_SMB3_FD_ERR_EVENT ( lock_err ) ;
DEFINE_SMB3_FD_ERR_EVENT ( close_err ) ;
/*
* For handle based query / set info calls
*/
2019-02-27 06:58:30 +03:00
DECLARE_EVENT_CLASS ( smb3_inf_enter_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
__u8 infclass ,
__u32 type ) ,
TP_ARGS ( xid , fid , tid , sesid , infclass , type ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u8 , infclass )
__field ( __u32 , type )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > infclass = infclass ;
__entry - > type = type ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
__entry - > infclass , __entry - > type )
)
# define DEFINE_SMB3_INF_ENTER_EVENT(name) \
DEFINE_EVENT ( smb3_inf_enter_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
__u8 infclass , \
__u32 type ) , \
TP_ARGS ( xid , fid , tid , sesid , infclass , type ) )
DEFINE_SMB3_INF_ENTER_EVENT ( query_info_enter ) ;
DEFINE_SMB3_INF_ENTER_EVENT ( query_info_done ) ;
2019-09-16 06:38:52 +03:00
DEFINE_SMB3_INF_ENTER_EVENT ( notify_enter ) ;
DEFINE_SMB3_INF_ENTER_EVENT ( notify_done ) ;
2019-02-27 06:58:30 +03:00
2018-05-18 05:16:55 +03:00
DECLARE_EVENT_CLASS ( smb3_inf_err_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
__u8 infclass ,
__u32 type ,
int rc ) ,
TP_ARGS ( xid , fid , tid , sesid , infclass , type , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u8 , infclass )
__field ( __u32 , type )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > infclass = infclass ;
__entry - > type = type ;
__entry - > rc = rc ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
2018-05-18 05:16:55 +03:00
__entry - > infclass , __entry - > type , __entry - > rc )
)
# define DEFINE_SMB3_INF_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_inf_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
__u8 infclass , \
__u32 type , \
int rc ) , \
TP_ARGS ( xid , fid , tid , sesid , infclass , type , rc ) )
DEFINE_SMB3_INF_ERR_EVENT ( query_info_err ) ;
DEFINE_SMB3_INF_ERR_EVENT ( set_info_err ) ;
2019-09-16 06:38:52 +03:00
DEFINE_SMB3_INF_ERR_EVENT ( notify_err ) ;
2018-05-18 05:16:55 +03:00
DEFINE_SMB3_INF_ERR_EVENT ( fsctl_err ) ;
2019-03-13 08:02:47 +03:00
DECLARE_EVENT_CLASS ( smb3_inf_compound_enter_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ,
const char * full_path ) ,
TP_ARGS ( xid , tid , sesid , full_path ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__string ( path , full_path )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__assign_str ( path , full_path ) ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x path=%s " ,
__entry - > xid , __entry - > sesid , __entry - > tid ,
__get_str ( path ) )
)
# define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
DEFINE_EVENT ( smb3_inf_compound_enter_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid , \
const char * full_path ) , \
TP_ARGS ( xid , tid , sesid , full_path ) )
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( query_info_compound_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( hardlink_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( rename_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( rmdir_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( set_eof_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( set_info_compound_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( delete_enter ) ;
DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT ( mkdir_enter ) ;
DECLARE_EVENT_CLASS ( smb3_inf_compound_done_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ) ,
TP_ARGS ( xid , tid , sesid ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x " ,
__entry - > xid , __entry - > sesid , __entry - > tid )
)
# define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
DEFINE_EVENT ( smb3_inf_compound_done_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid ) , \
TP_ARGS ( xid , tid , sesid ) )
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( query_info_compound_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( hardlink_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( rename_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( rmdir_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( set_eof_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( set_info_compound_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( delete_done ) ;
DEFINE_SMB3_INF_COMPOUND_DONE_EVENT ( mkdir_done ) ;
DECLARE_EVENT_CLASS ( smb3_inf_compound_err_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ,
int rc ) ,
TP_ARGS ( xid , tid , sesid , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > rc = rc ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid ,
__entry - > rc )
)
# define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_inf_compound_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid , \
int rc ) , \
TP_ARGS ( xid , tid , sesid , rc ) )
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( query_info_compound_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( hardlink_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( rename_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( rmdir_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( set_eof_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( set_info_compound_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( mkdir_err ) ;
DEFINE_SMB3_INF_COMPOUND_ERR_EVENT ( delete_err ) ;
2018-05-18 05:16:55 +03:00
/*
* For logging SMB3 Status code and Command for responses which return errors
*/
DECLARE_EVENT_CLASS ( smb3_cmd_err_class ,
2018-05-19 10:28:53 +03:00
TP_PROTO ( __u32 tid ,
2018-05-18 05:16:55 +03:00
__u64 sesid ,
__u16 cmd ,
__u64 mid ,
__u32 status ,
int rc ) ,
2018-05-19 10:28:53 +03:00
TP_ARGS ( tid , sesid , cmd , mid , status , rc ) ,
2018-05-18 05:16:55 +03:00
TP_STRUCT__entry (
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u16 , cmd )
__field ( __u64 , mid )
__field ( __u32 , status )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > cmd = cmd ;
__entry - > mid = mid ;
__entry - > status = status ;
__entry - > rc = rc ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " \t sid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d " ,
__entry - > sesid , __entry - > tid , __entry - > cmd , __entry - > mid ,
__entry - > status , __entry - > rc )
2018-05-18 05:16:55 +03:00
)
# define DEFINE_SMB3_CMD_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_cmd_err_class , smb3_ # # name , \
2018-05-19 10:28:53 +03:00
TP_PROTO ( __u32 tid , \
2018-05-18 05:16:55 +03:00
__u64 sesid , \
__u16 cmd , \
__u64 mid , \
__u32 status , \
int rc ) , \
2018-05-19 10:28:53 +03:00
TP_ARGS ( tid , sesid , cmd , mid , status , rc ) )
2018-05-18 05:16:55 +03:00
DEFINE_SMB3_CMD_ERR_EVENT ( cmd_err ) ;
DECLARE_EVENT_CLASS ( smb3_cmd_done_class ,
2018-05-19 10:28:53 +03:00
TP_PROTO ( __u32 tid ,
2018-05-18 05:16:55 +03:00
__u64 sesid ,
__u16 cmd ,
__u64 mid ) ,
2018-05-19 10:28:53 +03:00
TP_ARGS ( tid , sesid , cmd , mid ) ,
2018-05-18 05:16:55 +03:00
TP_STRUCT__entry (
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u16 , cmd )
__field ( __u64 , mid )
) ,
TP_fast_assign (
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > cmd = cmd ;
__entry - > mid = mid ;
) ,
2018-05-19 10:28:53 +03:00
TP_printk ( " \t sid=0x%llx tid=0x%x cmd=%u mid=%llu " ,
__entry - > sesid , __entry - > tid ,
2018-05-18 05:16:55 +03:00
__entry - > cmd , __entry - > mid )
)
# define DEFINE_SMB3_CMD_DONE_EVENT(name) \
DEFINE_EVENT ( smb3_cmd_done_class , smb3_ # # name , \
2018-05-19 10:28:53 +03:00
TP_PROTO ( __u32 tid , \
2018-05-18 05:16:55 +03:00
__u64 sesid , \
__u16 cmd , \
__u64 mid ) , \
2018-05-19 10:28:53 +03:00
TP_ARGS ( tid , sesid , cmd , mid ) )
2018-05-18 05:16:55 +03:00
2019-02-27 06:26:20 +03:00
DEFINE_SMB3_CMD_DONE_EVENT ( cmd_enter ) ;
2018-05-18 05:16:55 +03:00
DEFINE_SMB3_CMD_DONE_EVENT ( cmd_done ) ;
2018-07-30 22:23:58 +03:00
DEFINE_SMB3_CMD_DONE_EVENT ( ses_expired ) ;
2018-05-18 05:16:55 +03:00
2018-08-02 00:38:07 +03:00
DECLARE_EVENT_CLASS ( smb3_mid_class ,
TP_PROTO ( __u16 cmd ,
__u64 mid ,
__u32 pid ,
unsigned long when_sent ,
unsigned long when_received ) ,
TP_ARGS ( cmd , mid , pid , when_sent , when_received ) ,
TP_STRUCT__entry (
__field ( __u16 , cmd )
__field ( __u64 , mid )
__field ( __u32 , pid )
__field ( unsigned long , when_sent )
__field ( unsigned long , when_received )
) ,
TP_fast_assign (
__entry - > cmd = cmd ;
__entry - > mid = mid ;
__entry - > pid = pid ;
__entry - > when_sent = when_sent ;
__entry - > when_received = when_received ;
) ,
TP_printk ( " \t cmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu " ,
__entry - > cmd , __entry - > mid , __entry - > pid , __entry - > when_sent ,
__entry - > when_received )
)
# define DEFINE_SMB3_MID_EVENT(name) \
DEFINE_EVENT ( smb3_mid_class , smb3_ # # name , \
TP_PROTO ( __u16 cmd , \
__u64 mid , \
__u32 pid , \
unsigned long when_sent , \
unsigned long when_received ) , \
TP_ARGS ( cmd , mid , pid , when_sent , when_received ) )
DEFINE_SMB3_MID_EVENT ( slow_rsp ) ;
2018-05-19 10:28:53 +03:00
DECLARE_EVENT_CLASS ( smb3_exit_err_class ,
TP_PROTO ( unsigned int xid ,
const char * func_name ,
int rc ) ,
TP_ARGS ( xid , func_name , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( const char * , func_name )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > func_name = func_name ;
__entry - > rc = rc ;
) ,
TP_printk ( " \t %s: xid=%u rc=%d " ,
__entry - > func_name , __entry - > xid , __entry - > rc )
)
# define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_exit_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
const char * func_name , \
int rc ) , \
TP_ARGS ( xid , func_name , rc ) )
DEFINE_SMB3_EXIT_ERR_EVENT ( exit_err ) ;
DECLARE_EVENT_CLASS ( smb3_enter_exit_class ,
TP_PROTO ( unsigned int xid ,
const char * func_name ) ,
TP_ARGS ( xid , func_name ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( const char * , func_name )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > func_name = func_name ;
) ,
TP_printk ( " \t %s: xid=%u " ,
__entry - > func_name , __entry - > xid )
)
# define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
DEFINE_EVENT ( smb3_enter_exit_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
const char * func_name ) , \
TP_ARGS ( xid , func_name ) )
DEFINE_SMB3_ENTER_EXIT_EVENT ( enter ) ;
DEFINE_SMB3_ENTER_EXIT_EVENT ( exit_done ) ;
2018-10-28 08:47:11 +03:00
/*
* For SMB2 / SMB3 tree connect
*/
DECLARE_EVENT_CLASS ( smb3_tcon_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ,
const char * unc_name ,
int rc ) ,
TP_ARGS ( xid , tid , sesid , unc_name , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
2019-03-22 01:31:22 +03:00
__string ( name , unc_name )
2018-10-28 08:47:11 +03:00
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
2019-03-22 01:31:22 +03:00
__assign_str ( name , unc_name ) ;
2018-10-28 08:47:11 +03:00
__entry - > rc = rc ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid ,
2019-03-22 01:31:22 +03:00
__get_str ( name ) , __entry - > rc )
2018-10-28 08:47:11 +03:00
)
# define DEFINE_SMB3_TCON_EVENT(name) \
DEFINE_EVENT ( smb3_tcon_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid , \
const char * unc_name , \
int rc ) , \
TP_ARGS ( xid , tid , sesid , unc_name , rc ) )
DEFINE_SMB3_TCON_EVENT ( tcon ) ;
2018-05-31 05:42:34 +03:00
/*
2019-02-27 04:08:12 +03:00
* For smb2 / smb3 open ( including create and mkdir ) calls
2018-05-31 05:42:34 +03:00
*/
2019-02-27 04:08:12 +03:00
DECLARE_EVENT_CLASS ( smb3_open_enter_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ,
int create_options ,
int desired_access ) ,
TP_ARGS ( xid , tid , sesid , create_options , desired_access ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( int , create_options )
__field ( int , desired_access )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > create_options = create_options ;
__entry - > desired_access = desired_access ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x " ,
__entry - > xid , __entry - > sesid , __entry - > tid ,
__entry - > create_options , __entry - > desired_access )
)
# define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
DEFINE_EVENT ( smb3_open_enter_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid , \
int create_options , \
int desired_access ) , \
TP_ARGS ( xid , tid , sesid , create_options , desired_access ) )
DEFINE_SMB3_OPEN_ENTER_EVENT ( open_enter ) ;
DEFINE_SMB3_OPEN_ENTER_EVENT ( posix_mkdir_enter ) ;
2018-05-31 05:42:34 +03:00
DECLARE_EVENT_CLASS ( smb3_open_err_class ,
TP_PROTO ( unsigned int xid ,
__u32 tid ,
__u64 sesid ,
int create_options ,
int desired_access ,
int rc ) ,
TP_ARGS ( xid , tid , sesid , create_options , desired_access , rc ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( int , create_options )
__field ( int , desired_access )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > create_options = create_options ;
__entry - > desired_access = desired_access ;
__entry - > rc = rc ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d " ,
__entry - > xid , __entry - > sesid , __entry - > tid ,
__entry - > create_options , __entry - > desired_access , __entry - > rc )
)
# define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_open_err_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u32 tid , \
__u64 sesid , \
int create_options , \
int desired_access , \
int rc ) , \
TP_ARGS ( xid , tid , sesid , create_options , desired_access , rc ) )
DEFINE_SMB3_OPEN_ERR_EVENT ( open_err ) ;
2018-06-15 05:56:32 +03:00
DEFINE_SMB3_OPEN_ERR_EVENT ( posix_mkdir_err ) ;
2018-05-31 05:42:34 +03:00
DECLARE_EVENT_CLASS ( smb3_open_done_class ,
TP_PROTO ( unsigned int xid ,
__u64 fid ,
__u32 tid ,
__u64 sesid ,
int create_options ,
int desired_access ) ,
TP_ARGS ( xid , fid , tid , sesid , create_options , desired_access ) ,
TP_STRUCT__entry (
__field ( unsigned int , xid )
__field ( __u64 , fid )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( int , create_options )
__field ( int , desired_access )
) ,
TP_fast_assign (
__entry - > xid = xid ;
__entry - > fid = fid ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > create_options = create_options ;
__entry - > desired_access = desired_access ;
) ,
TP_printk ( " xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x " ,
__entry - > xid , __entry - > sesid , __entry - > tid , __entry - > fid ,
__entry - > create_options , __entry - > desired_access )
)
# define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
DEFINE_EVENT ( smb3_open_done_class , smb3_ # # name , \
TP_PROTO ( unsigned int xid , \
__u64 fid , \
__u32 tid , \
__u64 sesid , \
int create_options , \
int desired_access ) , \
TP_ARGS ( xid , fid , tid , sesid , create_options , desired_access ) )
DEFINE_SMB3_OPEN_DONE_EVENT ( open_done ) ;
2018-06-15 05:56:32 +03:00
DEFINE_SMB3_OPEN_DONE_EVENT ( posix_mkdir_done ) ;
2018-05-31 05:42:34 +03:00
2018-09-29 03:44:23 +03:00
DECLARE_EVENT_CLASS ( smb3_lease_done_class ,
TP_PROTO ( __u32 lease_state ,
__u32 tid ,
__u64 sesid ,
__u64 lease_key_low ,
__u64 lease_key_high ) ,
TP_ARGS ( lease_state , tid , sesid , lease_key_low , lease_key_high ) ,
TP_STRUCT__entry (
__field ( __u32 , lease_state )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u64 , lease_key_low )
__field ( __u64 , lease_key_high )
) ,
TP_fast_assign (
__entry - > lease_state = lease_state ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > lease_key_low = lease_key_low ;
__entry - > lease_key_high = lease_key_high ;
) ,
TP_printk ( " sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x " ,
__entry - > sesid , __entry - > tid , __entry - > lease_key_high ,
__entry - > lease_key_low , __entry - > lease_state )
)
# define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
DEFINE_EVENT ( smb3_lease_done_class , smb3_ # # name , \
TP_PROTO ( __u32 lease_state , \
__u32 tid , \
__u64 sesid , \
__u64 lease_key_low , \
__u64 lease_key_high ) , \
TP_ARGS ( lease_state , tid , sesid , lease_key_low , lease_key_high ) )
DEFINE_SMB3_LEASE_DONE_EVENT ( lease_done ) ;
DECLARE_EVENT_CLASS ( smb3_lease_err_class ,
TP_PROTO ( __u32 lease_state ,
__u32 tid ,
__u64 sesid ,
__u64 lease_key_low ,
__u64 lease_key_high ,
int rc ) ,
TP_ARGS ( lease_state , tid , sesid , lease_key_low , lease_key_high , rc ) ,
TP_STRUCT__entry (
__field ( __u32 , lease_state )
__field ( __u32 , tid )
__field ( __u64 , sesid )
__field ( __u64 , lease_key_low )
__field ( __u64 , lease_key_high )
__field ( int , rc )
) ,
TP_fast_assign (
__entry - > lease_state = lease_state ;
__entry - > tid = tid ;
__entry - > sesid = sesid ;
__entry - > lease_key_low = lease_key_low ;
__entry - > lease_key_high = lease_key_high ;
__entry - > rc = rc ;
) ,
TP_printk ( " sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d " ,
__entry - > sesid , __entry - > tid , __entry - > lease_key_high ,
__entry - > lease_key_low , __entry - > lease_state , __entry - > rc )
)
# define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
DEFINE_EVENT ( smb3_lease_err_class , smb3_ # # name , \
TP_PROTO ( __u32 lease_state , \
__u32 tid , \
__u64 sesid , \
__u64 lease_key_low , \
__u64 lease_key_high , \
int rc ) , \
TP_ARGS ( lease_state , tid , sesid , lease_key_low , lease_key_high , rc ) )
DEFINE_SMB3_LEASE_ERR_EVENT ( lease_err ) ;
2018-07-31 03:23:09 +03:00
DECLARE_EVENT_CLASS ( smb3_reconnect_class ,
TP_PROTO ( __u64 currmid ,
char * hostname ) ,
TP_ARGS ( currmid , hostname ) ,
TP_STRUCT__entry (
__field ( __u64 , currmid )
__field ( char * , hostname )
) ,
TP_fast_assign (
__entry - > currmid = currmid ;
__entry - > hostname = hostname ;
) ,
TP_printk ( " server=%s current_mid=0x%llx " ,
__entry - > hostname ,
__entry - > currmid )
)
# define DEFINE_SMB3_RECONNECT_EVENT(name) \
DEFINE_EVENT ( smb3_reconnect_class , smb3_ # # name , \
TP_PROTO ( __u64 currmid , \
char * hostname ) , \
TP_ARGS ( currmid , hostname ) )
DEFINE_SMB3_RECONNECT_EVENT ( reconnect ) ;
DEFINE_SMB3_RECONNECT_EVENT ( partial_send_reconnect ) ;
2018-09-01 09:10:17 +03:00
DECLARE_EVENT_CLASS ( smb3_credit_class ,
TP_PROTO ( __u64 currmid ,
char * hostname ,
int credits ) ,
TP_ARGS ( currmid , hostname , credits ) ,
TP_STRUCT__entry (
__field ( __u64 , currmid )
__field ( char * , hostname )
__field ( int , credits )
) ,
TP_fast_assign (
__entry - > currmid = currmid ;
__entry - > hostname = hostname ;
__entry - > credits = credits ;
) ,
TP_printk ( " server=%s current_mid=0x%llx credits=%d " ,
__entry - > hostname ,
__entry - > currmid ,
__entry - > credits )
)
# define DEFINE_SMB3_CREDIT_EVENT(name) \
DEFINE_EVENT ( smb3_credit_class , smb3_ # # name , \
TP_PROTO ( __u64 currmid , \
char * hostname , \
int credits ) , \
TP_ARGS ( currmid , hostname , credits ) )
DEFINE_SMB3_CREDIT_EVENT ( reconnect_with_invalid_credits ) ;
2019-03-10 05:29:55 +03:00
DEFINE_SMB3_CREDIT_EVENT ( credit_timeout ) ;
2018-09-01 09:10:17 +03:00
2018-05-18 05:16:55 +03:00
# endif /* _CIFS_TRACE_H */
# undef TRACE_INCLUDE_PATH
# define TRACE_INCLUDE_PATH .
# define TRACE_INCLUDE_FILE trace
# include <trace/define_trace.h>