diff mbox series

Improve dynamic tracing of open and posix mkdir

Message ID CAH2r5msgdyPZE077R5hatgiFamWa_M9fAZ+JbgsAZQxk-ki9kw@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series Improve dynamic tracing of open and posix mkdir | expand

Commit Message

Steve French Feb. 27, 2019, 1:14 a.m. UTC
Updated to limit it to open and mkdir (not compounded operations) with
feedback from Pavel.

Sample output

# trace-cmd show
# tracer: nop
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
           mkdir-19287 [002] .... 17897.136632:
smb3_posix_mkdir_enter: xid=8 sid=0xd29a497f tid=0xbc99b185
cr_opts=0x1 des_access=0x100
           mkdir-19287 [002] .... 17897.141109: smb3_posix_mkdir_done:
xid=8 sid=0xd29a497f tid=0xbc99b185 fid=0x3d0ea06a cr_opts=0x1
des_access=0x100
           touch-19289 [002] .... 17910.203266: smb3_open_enter:
xid=12 sid=0xd29a497f tid=0xbc99b185 cr_opts=0x40
des_access=0x40000080
           touch-19289 [002] .... 17910.214443: smb3_open_done: xid=12
sid=0xd29a497f tid=0xbc99b185 fid=0x74770519 cr_opts=0x40
des_access=0x40000080

Comments

Pavel Shilovsky Feb. 27, 2019, 1:23 a.m. UTC | #1
вт, 26 февр. 2019 г. в 17:16, Steve French <smfrench@gmail.com>:
>
> Updated to limit it to open and mkdir (not compounded operations) with
> feedback from Pavel.
>
> Sample output
>
> # trace-cmd show
> # tracer: nop
> #
> #                              _-----=> irqs-off
> #                             / _----=> need-resched
> #                            | / _---=> hardirq/softirq
> #                            || / _--=> preempt-depth
> #                            ||| /     delay
> #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
> #              | |       |   ||||       |         |
>            mkdir-19287 [002] .... 17897.136632:
> smb3_posix_mkdir_enter: xid=8 sid=0xd29a497f tid=0xbc99b185
> cr_opts=0x1 des_access=0x100
>            mkdir-19287 [002] .... 17897.141109: smb3_posix_mkdir_done:
> xid=8 sid=0xd29a497f tid=0xbc99b185 fid=0x3d0ea06a cr_opts=0x1
> des_access=0x100
>            touch-19289 [002] .... 17910.203266: smb3_open_enter:
> xid=12 sid=0xd29a497f tid=0xbc99b185 cr_opts=0x40
> des_access=0x40000080
>            touch-19289 [002] .... 17910.214443: smb3_open_done: xid=12
> sid=0xd29a497f tid=0xbc99b185 fid=0x74770519 cr_opts=0x40
> des_access=0x40000080

Looks good.

Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>

--
Best regards,
Pavel Shilovsky
diff mbox series

Patch

From 6f09d3f03ec3490a964b9ef6983c79f389cd0e8c Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Tue, 26 Feb 2019 19:08:12 -0600
Subject: [PATCH] smb3: improve dynamic tracing of open and posix mkdir

Add dynamic trace point for open_enter (and mkdir enter)

Signed-off-by: Steve French <stfrench@microsoft.com>
---
 fs/cifs/smb2pdu.c |  5 +++++
 fs/cifs/trace.h   | 41 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index b774b43edfbd..5e34a7b54d1e 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2196,6 +2196,8 @@  int smb311_posix_mkdir(const unsigned int xid, struct inode *inode,
 	rqst.rq_iov = iov;
 	rqst.rq_nvec = n_iov;
 
+	trace_smb3_posix_mkdir_enter(xid, tcon->tid, ses->Suid, CREATE_NOT_FILE,
+				    FILE_WRITE_ATTRIBUTES);
 	/* resource #4: response buffer */
 	rc = cifs_send_recv(xid, ses, &rqst, &resp_buftype, flags, &rsp_iov);
 	if (rc) {
@@ -2414,6 +2416,9 @@  SMB2_open(const unsigned int xid, struct cifs_open_parms *oparms, __le16 *path,
 	if (rc)
 		goto creat_exit;
 
+	trace_smb3_open_enter(xid, tcon->tid, tcon->ses->Suid,
+		oparms->create_options, oparms->desired_access);
+
 	rc = cifs_send_recv(xid, ses, &rqst, &resp_buftype, flags,
 			    &rsp_iov);
 	rsp = (struct smb2_create_rsp *)rsp_iov.iov_base;
diff --git a/fs/cifs/trace.h b/fs/cifs/trace.h
index 660176e34dde..b6352b68f18b 100644
--- a/fs/cifs/trace.h
+++ b/fs/cifs/trace.h
@@ -411,8 +411,47 @@  DEFINE_SMB3_TCON_EVENT(tcon);
 
 
 /*
- * For smb2/smb3 open call
+ * For smb2/smb3 open (including create and mkdir) calls
  */
+
+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);
+
 DECLARE_EVENT_CLASS(smb3_open_err_class,
 	TP_PROTO(unsigned int xid,
 		__u32	tid,
-- 
2.17.1