Commit 073dd87c authored by Steve French's avatar Steve French
Browse files

smb3: add dynamic trace point for ioctls



It can be helpful in debugging to know which ioctls are called to better
correlate them with smb3 fsctls (and opens).  Add a dynamic trace point
to trace ioctls into cifs.ko

Here is sample output:

            TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
               | |         |   |||||     |         |
 new-inotify-ioc-90418   [001] ..... 142157.397024: smb3_ioctl: xid=18 fid=0x0 ioctl cmd=0xc009cf0b
 new-inotify-ioc-90457   [007] ..... 142217.943569: smb3_ioctl: xid=22 fid=0x389bf5b6 ioctl cmd=0xc009cf0b

Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent f3dc1bdb
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -345,6 +345,11 @@ long cifs_ioctl(struct file *filep, unsigned int command, unsigned long arg)
	xid = get_xid();

	cifs_dbg(FYI, "cifs ioctl 0x%x\n", command);
	if (pSMBFile == NULL)
		trace_smb3_ioctl(xid, 0, command);
	else
		trace_smb3_ioctl(xid, pSMBFile->fid.persistent_fid, command);

	switch (command) {
		case FS_IOC_GETFLAGS:
			if (pSMBFile == NULL)
+32 −0
Original line number Diff line number Diff line
@@ -1032,6 +1032,38 @@ DEFINE_EVENT(smb3_ses_class, smb3_##name, \

DEFINE_SMB3_SES_EVENT(ses_not_found);

DECLARE_EVENT_CLASS(smb3_ioctl_class,
	TP_PROTO(unsigned int xid,
		__u64	fid,
		unsigned int command),
	TP_ARGS(xid, fid, command),
	TP_STRUCT__entry(
		__field(unsigned int, xid)
		__field(__u64, fid)
		__field(unsigned int, command)
	),
	TP_fast_assign(
		__entry->xid = xid;
		__entry->fid = fid;
		__entry->command = command;
	),
	TP_printk("xid=%u fid=0x%llx ioctl cmd=0x%x",
		__entry->xid, __entry->fid, __entry->command)
)

#define DEFINE_SMB3_IOCTL_EVENT(name)        \
DEFINE_EVENT(smb3_ioctl_class, smb3_##name,  \
	TP_PROTO(unsigned int xid,	     \
		__u64 fid,		     \
		unsigned int command),	     \
	TP_ARGS(xid, fid, command))

DEFINE_SMB3_IOCTL_EVENT(ioctl);





DECLARE_EVENT_CLASS(smb3_credit_class,
	TP_PROTO(__u64	currmid,
		__u64 conn_id,