Re: [PATCH][SMB3] Add various dynamic tracepoints for compounded operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Version 2 of the patch attached.   Here is sample output from running it:

# entries-in-buffer/entries-written: 32/32   #P:8
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
           mkdir-31324 [001] .... 362773.434903:
smb3_query_info_compound_enter: xid=7 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           mkdir-31324 [002] .... 362773.435588:
smb3_query_info_compound_err: xid=7 sid=0xdd73f8cb tid=0x65257d36
path=\newdir rc=-2
           mkdir-31324 [002] .... 362773.435607: smb3_mkdir_enter:
xid=8 sid=0xdd73f8cb tid=0x65257d36 path=\newdir
           mkdir-31324 [002] .... 362773.436643: smb3_mkdir_done:
xid=8 sid=0xdd73f8cb tid=0x65257d36 path=\newdir
           mkdir-31324 [002] .... 362773.436659:
smb3_query_info_compound_enter: xid=8 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           mkdir-31324 [002] .... 362773.437414:
smb3_query_info_compound_done: xid=8 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           mkdir-31326 [006] .... 362775.812007:
smb3_query_info_compound_enter: xid=9 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           mkdir-31326 [006] .... 362775.812796:
smb3_query_info_compound_done: xid=9 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           rmdir-31327 [003] .... 362781.753333:
smb3_query_info_compound_enter: xid=10 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           rmdir-31327 [003] .... 362781.754057:
smb3_query_info_compound_done: xid=10 sid=0xdd73f8cb tid=0x65257d36
path=\newdir
           rmdir-31327 [003] .... 362781.754080: smb3_rmdir_enter:
xid=11 sid=0xdd73f8cb tid=0x65257d36 path=\newdir
           rmdir-31327 [003] .... 362781.755143: smb3_rmdir_done:
xid=11 sid=0xdd73f8cb tid=0x65257d36 path=\newdir
           touch-31328 [006] .... 362793.339620:
smb3_set_info_compound_enter: xid=13 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
           touch-31328 [006] .... 362793.340342:
smb3_set_info_compound_done: xid=13 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
              ln-31329 [002] .... 362800.848959:
smb3_query_info_compound_enter: xid=15 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile
              ln-31329 [002] .... 362800.849624:
smb3_query_info_compound_err: xid=15 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile rc=-2
              ln-31329 [002] .... 362800.849656:
smb3_query_info_compound_enter: xid=16 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
              ln-31329 [003] .... 362800.850318:
smb3_query_info_compound_done: xid=16 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
              ln-31329 [003] .... 362800.850370:
smb3_query_info_compound_enter: xid=17 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile
              ln-31329 [003] .... 362800.850918:
smb3_query_info_compound_err: xid=17 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile rc=-2
              ln-31329 [003] .... 362800.850940: smb3_hardlink_enter:
xid=18 sid=0xdd73f8cb tid=0x65257d36 path=\newfile
              ln-31329 [003] .... 362800.851669: smb3_hardlink_done:
xid=18 sid=0xdd73f8cb tid=0x65257d36 path=\newfile
           gmain-2225  [004] .... 362800.851847:
smb3_query_info_compound_enter: xid=19 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile
           gmain-2225  [005] .... 362800.852345:
smb3_query_info_compound_done: xid=19 sid=0xdd73f8cb tid=0x65257d36
path=\linknewfile
              rm-31330 [003] .... 362806.483029:
smb3_query_info_compound_enter: xid=20 sid=0xdd73f8cb tid=0x65257d36
path=\badfile
              rm-31330 [003] .... 362806.483654:
smb3_query_info_compound_err: xid=20 sid=0xdd73f8cb tid=0x65257d36
path=\badfile rc=-2
              rm-31330 [003] .... 362806.483704:
smb3_query_info_compound_enter: xid=21 sid=0xdd73f8cb tid=0x65257d36
path=\badfile
              rm-31330 [003] .... 362806.484296:
smb3_query_info_compound_err: xid=21 sid=0xdd73f8cb tid=0x65257d36
path=\badfile rc=-2
              rm-31335 [004] .... 362811.895827:
smb3_query_info_compound_enter: xid=22 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
              rm-31335 [005] .... 362811.896533:
smb3_query_info_compound_done: xid=22 sid=0xdd73f8cb tid=0x65257d36
path=\newfile
              rm-31335 [005] .... 362811.896575: smb3_delete_enter:
xid=23 sid=0xdd73f8cb tid=0x65257d36 path=\newfile
              rm-31335 [005] .... 362811.897364: smb3_delete_done:
xid=23 sid=0xdd73f8cb tid=0x65257d36 path=\newfile

On Mon, Mar 11, 2019 at 5:31 PM Steve French <smfrench@xxxxxxxxx> wrote:
>
> On Mon, Mar 11, 2019 at 5:18 PM Pavel Shilovsky <piastryyy@xxxxxxxxx> wrote:
> >
> > пн, 11 мар. 2019 г. в 14:25, Steve French <smfrench@xxxxxxxxx>:
> > >
> > > Sample output from tracing various newly added dynamic trace points
> > > (with this patch)
> > >
> > > (trace-cmd  record -e *query_info_co* -e smb3_hardlink* -e
> > > smb3_rename* -e smb3_set_eof* -e smb3_set_info_co* -e smb3_mkdir* -e
> > > smb3_delete*)
> > >
> > > # entries-in-buffer/entries-written: 44/44   #P:8
> > > #
> > > #                              _-----=> irqs-off
> > > #                             / _----=> need-resched
> > > #                            | / _---=> hardirq/softirq
> > > #                            || / _--=> preempt-depth
> > > #                            ||| /     delay
> > > #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
> > > #              | |       |   ||||       |         |
> > >      gvfsd-trash-2224  [004] .... 333095.401381:
> > > smb3_query_info_compound_enter: xid=5 sid=0xbb2583e9 tid=0xe7ab49dc
> > >      gvfsd-trash-2224  [002] .... 333095.402056:
> > > smb3_query_info_compound_err: xid=5 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >      gvfsd-trash-2224  [002] .... 333095.402189:
> > > smb3_query_info_compound_enter: xid=6 sid=0xbb2583e9 tid=0xe7ab49dc
> > >      gvfsd-trash-2224  [002] .... 333095.402688:
> > > smb3_query_info_compound_err: xid=6 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >            mkdir-16324 [002] .... 333123.559043:
> > > smb3_query_info_compound_enter: xid=7 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16324 [003] .... 333123.559654:
> > > smb3_query_info_compound_err: xid=7 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >            mkdir-16324 [003] .... 333123.559673: smb3_mkdir_enter:
> > > xid=8 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16324 [003] .... 333123.560748: smb3_mkdir_done:
> > > xid=8 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16324 [003] .... 333123.560763:
> > > smb3_query_info_compound_enter: xid=8 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16324 [003] .... 333123.561516:
> > > smb3_query_info_compound_done: xid=8 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16325 [002] .... 333126.841897:
> > > smb3_query_info_compound_enter: xid=9 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16325 [003] .... 333126.842580:
> > > smb3_query_info_compound_err: xid=9 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >            mkdir-16325 [003] .... 333126.842601: smb3_mkdir_enter:
> > > xid=10 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16325 [003] .... 333126.843513: smb3_mkdir_done:
> > > xid=10 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16325 [003] .... 333126.843529:
> > > smb3_query_info_compound_enter: xid=10 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16325 [003] .... 333126.844251:
> > > smb3_query_info_compound_done: xid=10 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16326 [000] .... 333129.858413:
> > > smb3_query_info_compound_enter: xid=11 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            mkdir-16326 [000] .... 333129.859193:
> > > smb3_query_info_compound_done: xid=11 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            rmdir-16328 [007] .... 333138.828049:
> > > smb3_query_info_compound_enter: xid=12 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            rmdir-16328 [007] .... 333138.828827:
> > > smb3_query_info_compound_done: xid=12 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            rmdir-16329 [006] .... 333141.388154:
> > > smb3_query_info_compound_enter: xid=14 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            rmdir-16329 [006] .... 333141.388813:
> > > smb3_query_info_compound_err: xid=14 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >               rm-16340 [006] .... 333157.935975:
> > > smb3_query_info_compound_enter: xid=15 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16340 [006] .... 333157.936607:
> > > smb3_query_info_compound_err: xid=15 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >               rm-16340 [006] .... 333157.936652:
> > > smb3_query_info_compound_enter: xid=16 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16340 [006] .... 333157.937146:
> > > smb3_query_info_compound_err: xid=16 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >            touch-16349 [005] .... 333184.932302:
> > > smb3_set_info_compound_enter: xid=18 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            touch-16349 [005] .... 333184.938303:
> > > smb3_set_info_compound_done: xid=18 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16350 [003] .... 333187.920309:
> > > smb3_query_info_compound_enter: xid=20 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16350 [003] .... 333187.920999:
> > > smb3_query_info_compound_done: xid=20 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16350 [003] .... 333187.921043: smb3_delete_enter:
> > > xid=21 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               rm-16350 [003] .... 333187.921870: smb3_delete_done:
> > > xid=21 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            touch-16361 [005] .... 333237.447252:
> > > smb3_set_info_compound_enter: xid=23 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            touch-16361 [005] .... 333237.448044:
> > > smb3_set_info_compound_done: xid=23 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [000] .... 333250.734035:
> > > smb3_query_info_compound_enter: xid=25 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [001] .... 333250.734689:
> > > smb3_query_info_compound_err: xid=25 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >               ln-16366 [001] .... 333250.734735:
> > > smb3_query_info_compound_enter: xid=26 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [001] .... 333250.735368:
> > > smb3_query_info_compound_done: xid=26 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [001] .... 333250.735413:
> > > smb3_query_info_compound_enter: xid=27 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [001] .... 333250.735947:
> > > smb3_query_info_compound_err: xid=27 sid=0xbb2583e9 tid=0xe7ab49dc
> > > rc=-2
> > >               ln-16366 [001] .... 333250.735973: smb3_hardlink_enter:
> > > xid=28 sid=0xbb2583e9 tid=0xe7ab49dc
> > >               ln-16366 [001] .... 333250.736679: smb3_hardlink_done:
> > > xid=28 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            gmain-2225  [000] .... 333250.736855:
> > > smb3_query_info_compound_enter: xid=29 sid=0xbb2583e9 tid=0xe7ab49dc
> > >            gmain-2225  [001] .... 333250.737527:
> > > smb3_query_info_compound_done: xid=29 sid=0xbb2583e9 tid=0xe7ab49dc
> >
> > Let's add full paths to the logs to increase usability - this way we
> > can match logs with particular actions in the user space.
>
> ok - will add
>
> > Also please don't remove the blank line - the 2nd change in the patch:
>
> That was a typo - will fix
>
>
>
> --
> Thanks,
>
> Steve



-- 
Thanks,

Steve
From dd5fd58a85e1350003716ad17473127dc800850e Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@xxxxxxxxxxxxx>
Date: Tue, 12 Mar 2019 00:31:50 -0500
Subject: [PATCH] smb3: Add dynamic trace points for various compounded smb3
 ops

Adds trace points for enter and exit (done vs. error) for:

	compounded query and setinfo, hardlink, rename,
	mkdir, rmdir, set_eof, delete (unlink)

Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
 fs/cifs/smb2inode.c | 84 +++++++++++++++++++++++++++++++++++++++--
 fs/cifs/trace.h     | 92 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 172 insertions(+), 4 deletions(-)

diff --git a/fs/cifs/smb2inode.c b/fs/cifs/smb2inode.c
index 01a76bccdb8d..d15530f7db2d 100644
--- a/fs/cifs/smb2inode.c
+++ b/fs/cifs/smb2inode.c
@@ -37,6 +37,16 @@
 #include "smb2pdu.h"
 #include "smb2proto.h"
 
+static void
+free_set_inf_compound(struct smb_rqst *rqst)
+{
+	if (rqst[1].rq_iov)
+		SMB2_set_info_free(&rqst[1]);
+	if (rqst[2].rq_iov)
+		SMB2_close_free(&rqst[2]);
+}
+
+
 static int
 smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 		 struct cifs_sb_info *cifs_sb, const char *full_path,
@@ -112,14 +122,18 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					  PATH_MAX * 2, 0, NULL);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_query_info_compound_enter(xid, ses->Suid, tcon->tid,
+						     full_path);
 		break;
 	case SMB2_OP_DELETE:
+		trace_smb3_delete_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	case SMB2_OP_MKDIR:
 		/*
 		 * Directories are created through parameters in the
 		 * SMB2_open() call.
 		 */
+		trace_smb3_mkdir_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	case SMB2_OP_RMDIR:
 		memset(&si_iov, 0, sizeof(si_iov));
@@ -135,6 +149,7 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					SMB2_O_INFO_FILE, 0, data, size);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_rmdir_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	case SMB2_OP_SET_EOF:
 		memset(&si_iov, 0, sizeof(si_iov));
@@ -150,6 +165,7 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					SMB2_O_INFO_FILE, 0, data, size);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_set_eof_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	case SMB2_OP_SET_INFO:
 		memset(&si_iov, 0, sizeof(si_iov));
@@ -166,6 +182,8 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					SMB2_O_INFO_FILE, 0, data, size);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_set_info_compound_enter(xid, ses->Suid, tcon->tid,
+						   full_path);
 		break;
 	case SMB2_OP_RENAME:
 		memset(&si_iov, 0, sizeof(si_iov));
@@ -190,6 +208,7 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					SMB2_O_INFO_FILE, 0, data, size);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_rename_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	case SMB2_OP_HARDLINK:
 		memset(&si_iov, 0, sizeof(si_iov));
@@ -214,6 +233,7 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 					SMB2_O_INFO_FILE, 0, data, size);
 		smb2_set_next_command(tcon, &rqst[num_rqst]);
 		smb2_set_related(&rqst[num_rqst++]);
+		trace_smb3_hardlink_enter(xid, ses->Suid, tcon->tid, full_path);
 		break;
 	default:
 		cifs_dbg(VFS, "Invalid command\n");
@@ -252,21 +272,77 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
 			SMB2_query_info_free(&rqst[1]);
 		if (rqst[2].rq_iov)
 			SMB2_close_free(&rqst[2]);
+		if (rc)
+			trace_smb3_query_info_compound_err(xid,  ses->Suid,
+						tcon->tid, full_path, rc);
+		else
+			trace_smb3_query_info_compound_done(xid, ses->Suid,
+						tcon->tid, full_path);
 		break;
 	case SMB2_OP_DELETE:
+		if (rc)
+			trace_smb3_delete_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_delete_done(xid, ses->Suid, tcon->tid,
+						full_path);
+		if (rqst[1].rq_iov)
+			SMB2_close_free(&rqst[1]);
+		break;
 	case SMB2_OP_MKDIR:
+		if (rc)
+			trace_smb3_mkdir_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_mkdir_done(xid, ses->Suid, tcon->tid,
+						full_path);
 		if (rqst[1].rq_iov)
 			SMB2_close_free(&rqst[1]);
 		break;
 	case SMB2_OP_HARDLINK:
+		if (rc)
+			trace_smb3_hardlink_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_hardlink_done(xid, ses->Suid, tcon->tid,
+						full_path);
+		free_set_inf_compound(rqst);
+		break;
 	case SMB2_OP_RENAME:
+		if (rc)
+			trace_smb3_rename_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_rename_done(xid, ses->Suid, tcon->tid,
+						full_path);
+		free_set_inf_compound(rqst);
+		break;
 	case SMB2_OP_RMDIR:
+		if (rc)
+			trace_smb3_rmdir_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_rmdir_done(xid, ses->Suid, tcon->tid,
+						full_path);
+		free_set_inf_compound(rqst);
+		break;
 	case SMB2_OP_SET_EOF:
+		if (rc)
+			trace_smb3_set_eof_err(xid,  ses->Suid, tcon->tid,
+						full_path, rc);
+		else
+			trace_smb3_set_eof_done(xid, ses->Suid, tcon->tid,
+						full_path);
+		free_set_inf_compound(rqst);
+		break;
 	case SMB2_OP_SET_INFO:
-		if (rqst[1].rq_iov)
-			SMB2_set_info_free(&rqst[1]);
-		if (rqst[2].rq_iov)
-			SMB2_close_free(&rqst[2]);
+		if (rc)
+			trace_smb3_set_info_compound_err(xid,  ses->Suid,
+						tcon->tid, full_path, rc);
+		else
+			trace_smb3_set_info_compound_done(xid, ses->Suid,
+						tcon->tid, full_path);
+		free_set_inf_compound(rqst);
 		break;
 	}
 	free_rsp_buf(resp_buftype[0], rsp_iov[0].iov_base);
diff --git a/fs/cifs/trace.h b/fs/cifs/trace.h
index c78e96c4cc53..ca0d77bf64e1 100644
--- a/fs/cifs/trace.h
+++ b/fs/cifs/trace.h
@@ -242,6 +242,98 @@ DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
 
+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(query_info_compound_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_done);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
+DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_done);
+
+DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
+	TP_PROTO(unsigned int xid,
+		__u32	tid,
+		__u64	sesid,
+		const char *full_path,
+		int	rc),
+	TP_ARGS(xid, tid, sesid, full_path, rc),
+	TP_STRUCT__entry(
+		__field(unsigned int, xid)
+		__field(__u32, tid)
+		__field(__u64, sesid)
+		__string(path, full_path)
+		__field(int, rc)
+	),
+	TP_fast_assign(
+		__entry->xid = xid;
+		__entry->tid = tid;
+		__entry->sesid = sesid;
+		__assign_str(path, full_path);
+		__entry->rc = rc;
+	),
+	TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s rc=%d",
+		__entry->xid, __entry->sesid, __entry->tid,
+		__get_str(path), __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,			\
+		const char *path,		\
+		int rc),			\
+	TP_ARGS(xid, tid, sesid, path, 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);
+
 /*
  * For logging SMB3 Status code and Command for responses which return errors
  */
-- 
2.17.1


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux