Patchwork [v2,RESEND] scripts/analyse-9p-simpletrace.py: Add symbolic names for 9p operations.

login
register
mail settings
Submitter Harsh Prateek Bora
Date Nov. 10, 2011, 7:03 a.m.
Message ID <1320908631-16069-1-git-send-email-harsh@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/124798/
State New
Headers show

Comments

Harsh Prateek Bora - Nov. 10, 2011, 7:03 a.m.
Currently, we just print the numerical value of 9p operation identifier in
case of RERROR which is less meaningful for readability. Mapping 9p
operation ids to symbolic names provides a better tracelog:

	RERROR (tag = 1 , id = TWALK , err = " No such file or directory ")
	RERROR (tag = 1 , id = TUNLINKAT , err = " Directory not empty ")

This patch provides a dictionary of all possible 9p operation symbols mapped
to their numerical identifiers which are likely to be used in future at
various places in this script.

Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
---
v2:
- stringify error code also.
v1:
- dictionary for 9p operations.

 scripts/analyse-9p-simpletrace.py |   74 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 2 deletions(-)

Patch

diff --git a/scripts/analyse-9p-simpletrace.py b/scripts/analyse-9p-simpletrace.py
index b6d58fd..3c7231d 100755
--- a/scripts/analyse-9p-simpletrace.py
+++ b/scripts/analyse-9p-simpletrace.py
@@ -3,15 +3,85 @@ 
 # Usage: ./analyse-9p-simpletrace <trace-events> <trace-pid>
 #
 # Author: Harsh Prateek Bora
-
+import os
 import simpletrace
+symbol_9p = {
+    6 : 'TLERROR',
+    7 : 'RLERROR',
+    8 : 'TSTATFS',
+    9 : 'RSTATFS',
+    12 : 'TLOPEN',
+    13 : 'RLOPEN',
+    14 : 'TLCREATE',
+    15 : 'RLCREATE',
+    16 : 'TSYMLINK',
+    17 : 'RSYMLINK',
+    18 : 'TMKNOD',
+    19 : 'RMKNOD',
+    20 : 'TRENAME',
+    21 : 'RRENAME',
+    22 : 'TREADLINK',
+    23 : 'RREADLINK',
+    24 : 'TGETATTR',
+    25 : 'RGETATTR',
+    26 : 'TSETATTR',
+    27 : 'RSETATTR',
+    30 : 'TXATTRWALK',
+    31 : 'RXATTRWALK',
+    32 : 'TXATTRCREATE',
+    33 : 'RXATTRCREATE',
+    40 : 'TREADDIR',
+    41 : 'RREADDIR',
+    50 : 'TFSYNC',
+    51 : 'RFSYNC',
+    52 : 'TLOCK',
+    53 : 'RLOCK',
+    54 : 'TGETLOCK',
+    55 : 'RGETLOCK',
+    70 : 'TLINK',
+    71 : 'RLINK',
+    72 : 'TMKDIR',
+    73 : 'RMKDIR',
+    74 : 'TRENAMEAT',
+    75 : 'RRENAMEAT',
+    76 : 'TUNLINKAT',
+    77 : 'RUNLINKAT',
+    100 : 'TVERSION',
+    101 : 'RVERSION',
+    102 : 'TAUTH',
+    103 : 'RAUTH',
+    104 : 'TATTACH',
+    105 : 'RATTACH',
+    106 : 'TERROR',
+    107 : 'RERROR',
+    108 : 'TFLUSH',
+    109 : 'RFLUSH',
+    110 : 'TWALK',
+    111 : 'RWALK',
+    112 : 'TOPEN',
+    113 : 'ROPEN',
+    114 : 'TCREATE',
+    115 : 'RCREATE',
+    116 : 'TREAD',
+    117 : 'RREAD',
+    118 : 'TWRITE',
+    119 : 'RWRITE',
+    120 : 'TCLUNK',
+    121 : 'RCLUNK',
+    122 : 'TREMOVE',
+    123 : 'RREMOVE',
+    124 : 'TSTAT',
+    125 : 'RSTAT',
+    126 : 'TWSTAT',
+    127 : 'RWSTAT'
+}
 
 class VirtFSRequestTracker(simpletrace.Analyzer):
         def begin(self):
                 print "Pretty printing 9p simpletrace log ..."
 
         def v9fs_rerror(self, tag, id, err):
-                print "RERROR (tag =", tag, ", id =", id, ",err =", err, ")"
+                print "RERROR (tag =", tag, ", id =", symbol_9p[id], ", err = \"", os.strerror(err), "\")"
 
         def v9fs_version(self, tag, id, msize, version):
                 print "TVERSION (tag =", tag, ", msize =", msize, ", version =", version, ")"