]> sourceware.org Git - systemtap.git/commitdiff
traceio sample: tolerate more than a few hundred processes
authorKey Meyer <kai@fiber.net>
Mon, 27 Apr 2009 22:36:32 +0000 (18:36 -0400)
committerFrank Ch. Eigler <fche@elastic.org>
Mon, 27 Apr 2009 22:36:32 +0000 (18:36 -0400)
... rather than exiting with MAXACTIONS exceeded

testsuite/systemtap.examples/io/traceio.stp

index 9e2deec61ffc04fdbdec365ac6742276c2c6907e..a5d79fde3b2b6ec1214f5344ab3cde792f4cd2fc 100755 (executable)
 global reads, writes, total_io
 
 probe vfs.read.return {
-  reads[execname()] += $return
+  reads[pid(),execname()] += $return
+  total_io[pid(),execname()] += $return
 }
 
 probe vfs.write.return {
-  writes[execname()] += $return
+  writes[pid(),execname()] += $return
+  total_io[pid(),execname()] += $return
 }
 
 probe timer.s(1) {
-  foreach (p in reads)
-    total_io[p] += reads[p]
-  foreach (p in writes)
-    total_io[p] += writes[p]
-  foreach(p in total_io- limit 10)
-    printf("%15s r: %8d KiB w: %8d KiB\n",
-           p, reads[p]/1024,
-           writes[p]/1024)
+  foreach([p,e] in total_io- limit 10)
+    printf("%8d %15s r: %8d MiB w: %8d MiB\n",
+           p, e, reads[p,e]/1024/1024,
+           writes[p,e]/1024/1024)
   printf("\n")
   # Note we don't zero out reads, writes and total_io,
   # so the values are cumulative since the script started.
This page took 0.030118 seconds and 5 git commands to generate.