summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2010-02-23 11:56:15 -0500
committerSteve Dickson <steved@redhat.com>2010-03-16 11:11:22 -0400
commitfb36412650985d057243291e5aec9a4cc4032e8d (patch)
treea34c4f29b767a3467fd083441bdc36b52a050a1a /tapset
parent53b575a2907f34cc98d01af72ccf585c9cd2689e (diff)
downloadsystemtap-steved-fb36412650985d057243291e5aec9a4cc4032e8d.tar.gz
systemtap-steved-fb36412650985d057243291e5aec9a4cc4032e8d.tar.xz
systemtap-steved-fb36412650985d057243291e5aec9a4cc4032e8d.zip
General clean up on the upper level probes
Added the ftype() function which converts file types into character strings Added calls nfsderror() to the return probes that will display errors in character strings Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'tapset')
-rw-r--r--tapset/nfsd.stp90
1 files changed, 67 insertions, 23 deletions
diff --git a/tapset/nfsd.stp b/tapset/nfsd.stp
index 3e518c57..f270d3a0 100644
--- a/tapset/nfsd.stp
+++ b/tapset/nfsd.stp
@@ -10,10 +10,14 @@
%{
+#include <linux/stat.h>
+
+#include <linux/nfsd/nfsfh.h>
#include <linux/nfs3.h>
#include <linux/nfs4.h>
#include <linux/sunrpc/svc.h>
+
%}
/*
@@ -116,6 +120,34 @@ function nfs4_ctype:string(cmode:long) %{ /* pure */
}
CATCH_DEREF_FAULT();
%}
+function ftype:string(type:long) %{ /* pure */
+
+ if (S_ISLNK(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISLNK)", THIS->type);
+ } else if (S_ISREG(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISREG)", THIS->type);
+ } else if (S_ISDIR(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISDIR)", THIS->type);
+ } else if (S_ISCHR(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISCHR)", THIS->type);
+ } else if (S_ISBLK(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISBLK)", THIS->type);
+ } else if (S_ISFIFO(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISFIFO)", THIS->type);
+ } else if (S_ISSOCK(THIS->type)) {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (ISSOCK)", THIS->type);
+ } else {
+ snprintf(THIS->__retvalue, MAXSTRINGLEN,
+ "0%llo (Uknown)", THIS->type);
+ }
+%}
/*
*probe nfsd.dispatch
* Fires when server receives a NFS operation from client
@@ -157,7 +189,7 @@ probe nfsd.proc.entries = nfsd.proc.lookup,
nfsd.proc.compound,
nfsd.proc.remove,
nfsd.proc.rename,
- nfsd.proc.create
+ nfsd.proc.create
{}
probe nfsd.proc.return = nfsd.proc.lookup.return,
@@ -832,7 +864,7 @@ probe nfsd.proc3.rename.return = kernel.function("nfsd3_proc_rename").return!,
{
name = "nfsd.proc3.rename.return"
version = 3
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
probe nfsd.proc4.rename = kernel.function("nfsd4_rename") !,
@@ -862,7 +894,7 @@ probe nfsd.proc4.rename.return = kernel.function("nfsd4_rename").return!,
}
probe nfsd.entries = nfsd.open,
- nfsd.read,
+ nfsd.read,
nfsd.write,
nfsd.lookup,
nfsd.commit,
@@ -874,7 +906,7 @@ probe nfsd.entries = nfsd.open,
{}
probe nfsd.return = nfsd.open.return,
- nfsd.read.return,
+ nfsd.read.return,
nfsd.write.return,
nfsd.lookup.return,
nfsd.commit.return,
@@ -900,14 +932,16 @@ probe nfsd.open = kernel.function("nfsd_open") !,
type = $type
name = "nfsd.open"
- argstr = sprintf("%d",access)
+ argstr = sprintf("access: %d type: %s", access, ftype(type))
}
probe nfsd.open.return = kernel.function("nfsd_open").return !,
module("nfsd").function("nfsd_open").return?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.open.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*probe nfsd.close
@@ -955,7 +989,7 @@ probe nfsd.read = kernel.function("nfsd_read") !,
vlen = $vlen
name = "nfsd.read"
- argstr = sprintf("%d,%d",count,offset)
+ argstr = sprintf("count: %d offset: %d",count,offset)
size = count
units = "bytes"
@@ -964,8 +998,10 @@ probe nfsd.read = kernel.function("nfsd_read") !,
probe nfsd.read.return = kernel.function("nfsd_read").return !,
module("nfsd").function("nfsd_read").return?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.read.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*probe nfsd.write
@@ -989,13 +1025,13 @@ probe nfsd.write = kernel.function("nfsd_write")!,
%( kernel_v >= "2.6.12" %?
file = $file
%)
- count = $cnt
+ count = p_long($cnt)
offset = $offset
vec = $vec
vlen = $vlen
name = "nfsd.write"
- argstr = sprintf("%d,%d",count,offset)
+ argstr = sprintf("count: %d offset: %d",count,offset)
size = count
units = "bytes"
@@ -1004,8 +1040,10 @@ probe nfsd.write = kernel.function("nfsd_write")!,
probe nfsd.write.return = kernel.function("nfsd_write").return!,
module("nfsd").function("nfsd_write").return?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.write.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*probe nfsd.commit
@@ -1028,7 +1066,7 @@ probe nfsd.commit = kernel.function("nfsd_commit")!,
flag = $fhp->fh_export->ex_flags
name = "nfsd.commit"
- argstr = sprintf("%d,%d",count,offset)
+ argstr = sprintf("count: %d offset: %d",count,offset)
size = count
units = "bytes"
@@ -1037,8 +1075,10 @@ probe nfsd.commit = kernel.function("nfsd_commit")!,
probe nfsd.commit.return = kernel.function("nfsd_commit").return!,
module("nfsd").function("nfsd_commit").return ?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.commit.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*
@@ -1060,14 +1100,16 @@ probe nfsd.lookup = kernel.function("nfsd_lookup")!,
filename = kernel_string_n($name, filelen)
name = "nfsd.lookup"
- argstr = sprintf("%s",filename)
+ argstr = sprintf("name: %s",filename)
}
probe nfsd.lookup.return = kernel.function("nfsd_lookup").return!,
module("nfsd").function("nfsd_lookup").return?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.lookup.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*
* probe nfsd.create
@@ -1095,14 +1137,16 @@ probe nfsd.create = kernel.function("nfsd_create")!,
iap_mode = $iap->ia_mode
name = "nfsd.create"
- argstr = sprintf("%s,%d",filename,type)
+ argstr = sprintf("name: %s type: %s",filename, ftype(type))
}
probe nfsd.create.return = kernel.function("nfsd_create").return!,
module("nfsd").function("nfsd_create").return?
{
+ fh = __svc_fh($fhp)
+
name = "nfsd.create.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*
@@ -1137,14 +1181,14 @@ probe nfsd.createv3 = kernel.function("nfsd_create_v3")!,
createmode = $createmode
name = "nfsd.createv3"
- argstr = sprintf("%s,%d",filename,createmode)
+ argstr = sprintf("name: %s mode: %s",filename, nfs3_cmode(createmode))
}
probe nfsd.createv3.return = kernel.function("nfsd_create_v3").return!,
module("nfsd").function("nfsd_create_v3").return?
{
name = "nfsd.createv3.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*
@@ -1168,14 +1212,14 @@ probe nfsd.unlink = kernel.function("nfsd_unlink")!,
type = $type
name = "nfsd.unlink"
- argstr = sprintf("%s,%d",filename,type)
+ argstr = sprintf("name: %s",filename);
}
probe nfsd.unlink.return = kernel.function("nfsd_unlink").return!,
module("nfsd").function("nfsd_unlink").return?
{
name = "nfsd.unlink.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}
/*
@@ -1203,12 +1247,12 @@ probe nfsd.rename = kernel.function("nfsd_rename")!,
tname = kernel_string_n($tname, tlen)
name = "nfsd.rename"
- argstr = sprintf("%s,%s",filename,tname)
+ argstr = sprintf("%s to %s",filename,tname)
}
probe nfsd.rename.return = kernel.function("nfsd_rename").return!,
module("nfsd").function("nfsd_rename").return?
{
name = "nfsd.rename.return"
- retstr = sprintf("%d",$return)
+ retstr = sprintf("%s", nfsderror($return))
}