diff options
author | fche <fche> | 2007-01-02 04:33:41 +0000 |
---|---|---|
committer | fche <fche> | 2007-01-02 04:33:41 +0000 |
commit | 7ad9d4f58308c4d8f35f2212ce82212301dfeeff (patch) | |
tree | d5eaf2ca091067ea5f95ef4fad47e5921f02a265 /examples/iostat-scsi.stp | |
parent | 6f313a734d26b13cb77de68638dc1b9913891c07 (diff) | |
download | systemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.tar.gz systemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.tar.xz systemtap-steved-7ad9d4f58308c4d8f35f2212ce82212301dfeeff.zip |
2007-01-01 Frank Ch. Eigler <fche@redhat.com>
* configure.ac: Bump version to 0.5.12 for release.
* configure: Regenerated.
* NEWS, AUTHORS: Populate & repopulate.
* examples/*: Added several .stp/.txt files from the wiki.
Diffstat (limited to 'examples/iostat-scsi.stp')
-rw-r--r-- | examples/iostat-scsi.stp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/iostat-scsi.stp b/examples/iostat-scsi.stp new file mode 100644 index 00000000..2fb4acf1 --- /dev/null +++ b/examples/iostat-scsi.stp @@ -0,0 +1,51 @@ +global devices, reads, writes + +/* data collection: SCSI disk */ +probe module("sd_mod").function("sd_init_command") { + device=kernel_string($SCpnt->request->rq_disk->disk_name) + sector_size=$SCpnt->device->sector_size + nr_sectors=$SCpnt->request->nr_sectors + devices[device] = 1 + if ($SCpnt->request->flags /* cmd_flags on some kernels */ & 1) + writes[device] <<< nr_sectors * sector_size + else + reads[device] <<< nr_sectors * sector_size +} +/* data collection: SCSI tape */ +probe module("st").function("st_do_scsi") { + device=kernel_string($STp->disk->disk_name) + devices[device] = 1 + if ($direction) + writes[device] <<< $bytes + else + reads[device] <<< $bytes +} + + +/* reporting */ +global blksize=512 +global hdrcount +probe timer.s($1) { + if ((hdrcount++ % 10) == 0) + printf("%9s %9s %9s %9s %9s %9s\n", + "Device:","tps","blk_read/s","blk_wrtn/s","blk_read","blk_wrtn") + + foreach (dev in devices) { + rdcount=@count(reads[dev]) + wrcount=@count(writes[dev]) + tps=(rdcount+wrcount)*100/$1 + rdblkcount=rdcount ? @sum(reads[dev])/blksize : 0 + wrblkcount=wrcount ? @sum(writes[dev])/blksize : 0 + rdblkrate=rdblkcount*100/$1 + wrblkrate=wrblkcount*100/$1 + printf("%9s %6d.%02d %6d.%02d %6d.%02d %9d %9d\n", + dev, tps/100,tps%100, + rdblkrate/100,rdblkrate%100, + wrblkrate/100,wrblkrate%100, + rdblkcount, wrblkcount) + } + printf ("\n") + delete devices + delete reads + delete writes +} |