summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/io
diff options
context:
space:
mode:
authorWilliam Cohen <wcohen@redhat.com>2010-02-02 14:32:38 -0500
committerWilliam Cohen <wcohen@redhat.com>2010-02-02 14:32:38 -0500
commit111dd9ac1d5e127b80c89be484be37ea326b449d (patch)
tree1b4f85890d811d8c4260eefe529ce34bf68985bb /testsuite/systemtap.examples/io
parenta4f3198f0b774528ef17dfb1ce5b3e70b6eb82fb (diff)
downloadsystemtap-steved-111dd9ac1d5e127b80c89be484be37ea326b449d.tar.gz
systemtap-steved-111dd9ac1d5e127b80c89be484be37ea326b449d.tar.xz
systemtap-steved-111dd9ac1d5e127b80c89be484be37ea326b449d.zip
Add nfs_func_users example.
Diffstat (limited to 'testsuite/systemtap.examples/io')
-rw-r--r--testsuite/systemtap.examples/io/nfs_func_users.meta13
-rwxr-xr-xtestsuite/systemtap.examples/io/nfs_func_users.stp18
2 files changed, 31 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/io/nfs_func_users.meta b/testsuite/systemtap.examples/io/nfs_func_users.meta
new file mode 100644
index 00000000..e37d401a
--- /dev/null
+++ b/testsuite/systemtap.examples/io/nfs_func_users.meta
@@ -0,0 +1,13 @@
+title: Tally the Number of NFS Functions Used by Each Process
+name: nfs_func_users.stp
+version: 1.0
+author: William Cohen
+keywords: io profiling
+subsystem: io
+status: production
+exit: user-controlled
+output: sorted-list
+scope: system-wide
+description: The nfs_func_users.stp script counts the uses of NFS functions in the kernel on a per process bases. The output is sorted from the process with the greatest number of NFS functions called to the least. The output contains the executable name, the process number, and the total number of NFS functions called by the process.
+test_check: stap -p4 nfs_func_users.stp
+test_installcheck: stap nfs_func_users.stp -c "sleep 0.2"
diff --git a/testsuite/systemtap.examples/io/nfs_func_users.stp b/testsuite/systemtap.examples/io/nfs_func_users.stp
new file mode 100755
index 00000000..010db420
--- /dev/null
+++ b/testsuite/systemtap.examples/io/nfs_func_users.stp
@@ -0,0 +1,18 @@
+#!/usr/bin/env stap
+
+global nfsdcalls
+
+probe begin {
+ printf("Collecting top NFSD procs...\n")
+}
+
+probe kernel.function("*@fs/nfs/*proc.c") ?,
+ module("nfs").function("*@fs/nfs/*proc.c") ? {
+ nfsdcalls[execname(), pid()]++
+}
+
+probe end {
+ printf("\nname(pid) nfs ops\n");
+ foreach ([name,p] in nfsdcalls- limit 20)
+ printf("%s(%d) %d\n", name, p, nfsdcalls[name, p])
+}