diff --git a/tapset/vfs.stp b/tapset/vfs.stp index 7f2312d..2ac8256 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/io/disktop.stp b/testsuite/systemtap.examples/io/disktop.stp index e2c4fc3..20462f0 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