summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Cohen <wcohen@redhat.com>2008-10-27 13:11:44 -0400
committerWilliam Cohen <wcohen@redhat.com>2008-10-27 13:11:44 -0400
commit26343b47cdaff0420e6405295a0788b334be4eb6 (patch)
treed168400a01999289691bcab09a1d6d8896d6c3e3
parent83b7815f1adaa6f44a7ad9e151dd78caf79bdb0e (diff)
downloadsystemtap-steved-26343b47cdaff0420e6405295a0788b334be4eb6.tar.gz
systemtap-steved-26343b47cdaff0420e6405295a0788b334be4eb6.tar.xz
systemtap-steved-26343b47cdaff0420e6405295a0788b334be4eb6.zip
Provide dev and devname in vfs.read and vfs.write. Use them in disktop.stp.
-rw-r--r--tapset/ChangeLog4
-rw-r--r--tapset/vfs.stp8
-rw-r--r--testsuite/systemtap.examples/ChangeLog4
-rwxr-xr-xtestsuite/systemtap.examples/io/disktop.stp21
4 files changed, 26 insertions, 11 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 805614dd..b692f227 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,7 @@
+2008-10-27 William Cohen <wcohen@redhat.com>
+
+ * vfs.stp (vfs.(read|write){.return}): Add dev and devname variables.
+
2008-10-23 Mark Wielaard <mjw@redhat.com>
* syscalls2.stp (syscall.utime): Don't use pointer_arg to fetch
diff --git a/tapset/vfs.stp b/tapset/vfs.stp
index 7f2312db..2ac8256a 100644
--- a/tapset/vfs.stp
+++ b/tapset/vfs.stp
@@ -800,6 +800,8 @@ probe vfs.read = kernel.function ("vfs_read")
pos = $pos
buf = $buf
bytes_to_read = $count
+ dev = __file_dev($file)
+ devname = __find_bdevname(dev, __file_bdev($file))
}
probe vfs.read.return = kernel.function ("vfs_read").return
@@ -808,6 +810,8 @@ probe vfs.read.return = kernel.function ("vfs_read").return
pos = $pos
buf = $buf
bytes_to_read = $count
+ dev = __file_dev($file)
+ devname = __find_bdevname(dev, __file_bdev($file))
ret = $return
bytes_read = ret > 0 ? ret : 0
@@ -844,6 +848,8 @@ probe vfs.write = kernel.function ("vfs_write")
pos = $pos
buf = $buf
bytes_to_write = $count
+ dev = __file_dev($file)
+ devname = __find_bdevname(dev, __file_bdev($file))
}
probe vfs.write.return = kernel.function ("vfs_write").return
@@ -852,6 +858,8 @@ probe vfs.write.return = kernel.function ("vfs_write").return
pos = $pos
buf = $buf
bytes_to_write = $count
+ dev = __file_dev($file)
+ devname = __find_bdevname(dev, __file_bdev($file))
ret = $return
bytes_written = ret > 0 ? ret : 0
diff --git a/testsuite/systemtap.examples/ChangeLog b/testsuite/systemtap.examples/ChangeLog
index a43e32a7..3a0afda4 100644
--- a/testsuite/systemtap.examples/ChangeLog
+++ b/testsuite/systemtap.examples/ChangeLog
@@ -1,3 +1,7 @@
+2008-10-27 William Cohen <wcohen@redhat.com>
+
+ * io/disktop.stp: Make use of devname added to vfs tapset.
+
2008-10-24 William Cohen <wcohen@redhat.com>
* io/traceio.stp:
diff --git a/testsuite/systemtap.examples/io/disktop.stp b/testsuite/systemtap.examples/io/disktop.stp
index e2c4fc3b..20462f0a 100755
--- a/testsuite/systemtap.examples/io/disktop.stp
+++ b/testsuite/systemtap.examples/io/disktop.stp
@@ -16,9 +16,6 @@ global read_bytes,write_bytes
probe vfs.read.return {
if ($return>0) {
- dev = __file_dev($file)
- devname = __find_bdevname(dev,__file_bdev($file))
-
if (devname!="N/A") {/*skip read from cache*/
io_stat[pid(),execname(),uid(),ppid(),"R"] += $return
device[pid(),execname(),uid(),ppid(),"R"] = devname
@@ -29,9 +26,6 @@ probe vfs.read.return {
probe vfs.write.return {
if ($return>0) {
- dev = __file_dev($file)
- devname = __find_bdevname(dev,__file_bdev($file))
-
if (devname!="N/A") { /*skip update cache*/
io_stat[pid(),execname(),uid(),ppid(),"W"] += $return
device[pid(),execname(),uid(),ppid(),"W"] = devname
@@ -43,16 +37,21 @@ probe vfs.write.return {
probe timer.ms(5000) {
/* skip non-read/write disk */
if (read_bytes+write_bytes) {
-
- printf("\n%-25s, %-8s%4dKb/sec, %-7s%6dKb, %-7s%6dKb\n\n",ctime(gettimeofday_s()),"Average:",
- ((read_bytes+write_bytes)/1024)/5,"Read:",read_bytes/1024,"Write:",write_bytes/1024)
+ printf("\n%-25s, %-8s%4dKb/sec, %-7s%6dKb, %-7s%6dKb\n\n",
+ ctime(gettimeofday_s()),"Average:",
+ ((read_bytes+write_bytes)/1024)/5,"Read:",
+ read_bytes/1024,"Write:",write_bytes/1024)
/* print header */
- printf("%8s %8s %8s %25s %8s %4s %12s\n","UID","PID","PPID","CMD","DEVICE","T","BYTES")
+ printf("%8s %8s %8s %25s %8s %4s %12s\n",
+ "UID","PID","PPID","CMD","DEVICE","T","BYTES")
}
/* print top ten I/O */
foreach ([process,cmd,userid,parent,action] in io_stat- limit 10)
- printf("%8d %8d %8d %25s %8s %4s %12d\n",userid,process,parent,cmd,device[process,cmd,userid,parent,action],action,io_stat[process,cmd,userid,parent,action])
+ printf("%8d %8d %8d %25s %8s %4s %12d\n",
+ userid,process,parent,cmd,
+ device[process,cmd,userid,parent,action],
+ action,io_stat[process,cmd,userid,parent,action])
/* clear data */
delete io_stat