diff options
author | Dave Brolley <brolley@redhat.com> | 2010-02-04 11:31:47 -0500 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2010-02-04 11:31:47 -0500 |
commit | 8155cc835adb286c456f30ebaa961508bc064e90 (patch) | |
tree | 3634a392b6e0ef15f9426928bb23f30f58546f29 /testsuite/systemtap.examples/io/iodevstats.stp | |
parent | d2334a2233f4efd055dab021c603f7c046730a66 (diff) | |
parent | 23b7dbfaf1e9860f77b6bf1aa3da8610bf31b03c (diff) | |
download | systemtap-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-x | testsuite/systemtap.examples/io/iodevstats.stp | 39 |
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 )) + } +} |