summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2009-08-13 10:41:07 -0400
committerSteve Dickson <steved@redhat.com>2009-08-13 10:41:07 -0400
commit0f38db8abb84c7a315762c9831dfcca101e50258 (patch)
tree86e7a5ea4975079af335cf2f0dd54d6bac704d5e
parentacc153b757eb0988c9cdae8ab4cb41d53425bd75 (diff)
downloadsystemtap-0f38db8abb84c7a315762c9831dfcca101e50258.tar.gz
systemtap-0f38db8abb84c7a315762c9831dfcca101e50258.tar.xz
systemtap-0f38db8abb84c7a315762c9831dfcca101e50258.zip
Added top-nfsclient.stp
Signed-off-by: Steve Dickson <steved@redhat.com>
-rwxr-xr-xtop-nfscalls.stp6
-rw-r--r--top-nfsclient.stp145
-rwxr-xr-xtop-nfsdcalls.stp6
3 files changed, 151 insertions, 6 deletions
diff --git a/top-nfscalls.stp b/top-nfscalls.stp
index 62fe9d0..90586e0 100755
--- a/top-nfscalls.stp
+++ b/top-nfscalls.stp
@@ -3,11 +3,11 @@
global nfscalls
probe begin {
- printf("Collecting data...\n")
+ printf("Collecting top NFS procs...\n")
}
-probe kernel.function("*@fs/nfs") ?,
- module("nfs").function("*@fs/nfs/*") ?
+probe kernel.function("*@fs/nfs/*proc.c") ?,
+ module("nfs").function("*@fs/nfs/*proc.c") ?
{
nfscalls[probefunc()]++
}
diff --git a/top-nfsclient.stp b/top-nfsclient.stp
new file mode 100644
index 0000000..7d187c8
--- /dev/null
+++ b/top-nfsclient.stp
@@ -0,0 +1,145 @@
+#!/usr/bin/env stap
+
+global entry, timings
+
+probe begin {
+ printf("Collecting data... Hit <Ctrl-C> to stop..\n")
+}
+
+function collect_entry() { entry[probefunc(),pid()] = gettimeofday_us() }
+function collect_exit() { timings[probefunc()] <<< (gettimeofday_us() - entry[probefunc(),pid()]) }
+
+probe module("nfs").function("*@fs/nfs/*proc.c") { collect_entry(); }
+probe module("nfs").function("*@fs/nfs/*proc.c").return { collect_exit(); }
+/*
+# Filename: nfs_v3_clientops_functions Line: 1
+probe module("nfs").function("nfs3_proc_get_root") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_get_root").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 2
+probe module("nfs").function("nfs3_proc_getattr") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_getattr").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 3
+probe module("nfs").function("nfs3_proc_setattr") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_setattr").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 4
+probe module("nfs").function("nfs3_proc_lookup") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_lookup").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 5
+probe module("nfs").function("nfs3_proc_access") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_access").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 6
+probe module("nfs").function("nfs3_proc_readlink") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_readlink").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 10
+probe module("nfs").function("nfs3_proc_create") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_create").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 11
+probe module("nfs").function("nfs3_proc_remove") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_remove").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 12
+probe module("nfs").function("nfs3_proc_unlink_setup") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_unlink_setup").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 13
+probe module("nfs").function("nfs3_proc_unlink_done") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_unlink_done").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 14
+probe module("nfs").function("nfs3_proc_rename") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_rename").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 15
+probe module("nfs").function("nfs3_proc_link") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_link").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 16
+probe module("nfs").function("nfs3_proc_symlink") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_symlink").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 17
+probe module("nfs").function("nfs3_proc_mkdir") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_mkdir").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 18
+probe module("nfs").function("nfs3_proc_rmdir") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_rmdir").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 19
+probe module("nfs").function("nfs3_proc_readdir") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_readdir").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 20
+probe module("nfs").function("nfs3_proc_mknod") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_mknod").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 21
+probe module("nfs").function("nfs3_proc_statfs") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_statfs").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 22
+probe module("nfs").function("nfs3_proc_fsinfo") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_fsinfo").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 23
+probe module("nfs").function("nfs3_proc_pathconf") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_pathconf").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 24
+probe module("nfs").function("nfs3_decode_dirent") { collect_entry(); }
+probe module("nfs").function("nfs3_decode_dirent").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 25
+probe module("nfs").function("nfs3_proc_read_setup") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_read_setup").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 26
+probe module("nfs").function("nfs3_read_done") { collect_entry(); }
+probe module("nfs").function("nfs3_read_done").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 27
+probe module("nfs").function("nfs3_proc_write_setup") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_write_setup").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 28
+probe module("nfs").function("nfs3_write_done") { collect_entry(); }
+probe module("nfs").function("nfs3_write_done").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 29
+probe module("nfs").function("nfs3_proc_commit_setup") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_commit_setup").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 30
+probe module("nfs").function("nfs3_commit_done") { collect_entry(); }
+probe module("nfs").function("nfs3_commit_done").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 31
+probe module("nfs").function("nfs_open") { collect_entry(); }
+probe module("nfs").function("nfs_open").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 32
+probe module("nfs").function("nfs_release") { collect_entry(); }
+probe module("nfs").function("nfs_release").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 33
+probe module("nfs").function("nfs3_proc_lock") { collect_entry(); }
+probe module("nfs").function("nfs3_proc_lock").return { collect_exit(); }
+
+# Filename: nfs_v3_clientops_functions Line: 34
+probe module("nfs").function("nfs3_forget_cached_acls") { collect_entry(); }
+probe module("nfs").function("nfs3_forget_cached_acls").return { collect_exit(); }
+*/
+probe end {
+ printf("function count min_us avg_us max_us\n")
+ foreach (i+ in timings) {
+ printf("%-25s %7d %8d %8d %8d\n", i, @count(timings[i]),
+ @min(timings[i]), @avg(timings[i]), @max(timings[i]))
+ }
+}
diff --git a/top-nfsdcalls.stp b/top-nfsdcalls.stp
index 7bfdf03..8b5dbdb 100755
--- a/top-nfsdcalls.stp
+++ b/top-nfsdcalls.stp
@@ -3,11 +3,11 @@
global nfsdcalls
probe begin {
- printf("Collecting data...\n")
+ printf("Collecting top NFSD procs...\n")
}
-probe kernel.function("*@fs/nfsd") ?,
- module("nfsd").function("*@fs/nfsd/*") ?
+probe kernel.function("*@fs/nfsd/*proc.c") ?,
+ module("nfsd").function("*@fs/nfsd/*proc.c*") ?
{
nfsdcalls[probefunc()]++
}