diff options
author | Dave Brolley <brolley@redhat.com> | 2009-09-16 12:18:50 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-09-16 12:18:50 -0400 |
commit | 0f4a9cb5967714ace01e0941592040b8c1d83ee7 (patch) | |
tree | f97784dbd9392694931c1be99abf7920f6f0484b /testsuite/systemtap.examples/io/iostat-scsi.stp | |
parent | d83d7b513d38791751e46a05e382b1e6876abefc (diff) | |
parent | d833f810e4ffaf5c9c16eebc7f10b9d14e53e508 (diff) | |
download | systemtap-steved-0f4a9cb5967714ace01e0941592040b8c1d83ee7.tar.gz systemtap-steved-0f4a9cb5967714ace01e0941592040b8c1d83ee7.tar.xz systemtap-steved-0f4a9cb5967714ace01e0941592040b8c1d83ee7.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.examples/io/iostat-scsi.stp')
-rwxr-xr-x | testsuite/systemtap.examples/io/iostat-scsi.stp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/testsuite/systemtap.examples/io/iostat-scsi.stp b/testsuite/systemtap.examples/io/iostat-scsi.stp index 15833af8..f6715a42 100755 --- a/testsuite/systemtap.examples/io/iostat-scsi.stp +++ b/testsuite/systemtap.examples/io/iostat-scsi.stp @@ -19,20 +19,29 @@ probe module("sd_mod").function("sd_init_command") !, kernel.function("sd_init_c reads[device] <<< nr_sectors * sector_size } %: + +function get_sector_size:long (data:long) { + return @cast(data, "scsi_device", "kernel<scsi/scsi_device.h>")->sector_size +} + +%(kernel_v>="2.6.31" %? %{ -#include <scsi/scsi_device.h> +#include <linux/blkdev.h> %} -function get_sector_size:long (data:long) %{ /* pure */ - struct scsi_device *sdp = (struct scsi_device *)((long)THIS->data); - THIS->__retvalue = kread(&(sdp->sector_size)); - CATCH_DEREF_FAULT(); +function get_nr_sectors:long(rq:long) %{ /* pure */ + THIS->__retvalue = blk_rq_sectors((const struct request *)(long)THIS->rq); %} +%) probe module("sd_mod").function("sd_prep_fn") !, kernel.function("sd_prep_fn") { device=kernel_string($rq->rq_disk->disk_name) sector_size=get_sector_size($q->queuedata) +%(kernel_v>="2.6.31" %? + nr_sectors=get_nr_sectors($rq) +%: nr_sectors=$rq->nr_sectors +%) devices[device] = 1 if ($rq->cmd_flags & 1) writes[device] <<< nr_sectors * sector_size |