summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/io/iodevstats.stp
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2010-02-04 11:31:47 -0500
committerDave Brolley <brolley@redhat.com>2010-02-04 11:31:47 -0500
commit8155cc835adb286c456f30ebaa961508bc064e90 (patch)
tree3634a392b6e0ef15f9426928bb23f30f58546f29 /testsuite/systemtap.examples/io/iodevstats.stp
parentd2334a2233f4efd055dab021c603f7c046730a66 (diff)
parent23b7dbfaf1e9860f77b6bf1aa3da8610bf31b03c (diff)
downloadsystemtap-steved-8155cc835adb286c456f30ebaa961508bc064e90.tar.gz
systemtap-steved-8155cc835adb286c456f30ebaa961508bc064e90.tar.xz
systemtap-steved-8155cc835adb286c456f30ebaa961508bc064e90.zip
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.examples/io/iodevstats.stp')
-rwxr-xr-xtestsuite/systemtap.examples/io/iodevstats.stp39
1 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/io/iodevstats.stp b/testsuite/systemtap.examples/io/iodevstats.stp
new file mode 100755
index 00000000..8925945f
--- /dev/null
+++ b/testsuite/systemtap.examples/io/iodevstats.stp
@@ -0,0 +1,39 @@
+#! /usr/bin/env stap
+global reads, writes, totals
+
+probe begin { printf("starting probe\n") }
+
+probe vfs.read.return {
+ count = $return
+ if ( count >= 0 ) {
+ e=execname();
+ reads[e,dev] <<< count # statistics array
+ totals[e,dev] += count
+ }
+}
+
+probe vfs.write.return {
+ count = $return
+ if (count >= 0 ) {
+ e=execname();
+ writes[e,dev] <<< count # statistics array
+ totals[e,dev] += count
+ }
+}
+
+probe end {
+ printf("\n%16s %8s %8s %8s %8s %8s %8s %8s\n",
+ "", "", "", "read", "read", "", "write", "write")
+ printf("%16s %8s %8s %8s %8s %8s %8s %8s\n",
+ "name", "device", "read", "KB tot", "B avg", "write", "KB tot", "B avg")
+ foreach ([name,dev] in totals- limit 20) { # sort by total io
+ printf("%16s %3d, %4d %8d %8d %8d %8d %8d %8d\n",
+ name, _dev_major(dev), _dev_minor(dev),
+ @count(reads[name,dev]),
+ (@count(reads[name,dev]) ? @sum(reads[name,dev])>>10 : 0 ),
+ (@count(reads[name,dev]) ? @avg(reads[name,dev]) : 0 ),
+ @count(writes[name,dev]),
+ (@count(writes[name,dev]) ? @sum(writes[name,dev])>>10 : 0 ),
+ (@count(writes[name,dev]) ? @avg(writes[name,dev]) : 0 ))
+ }
+}