3 # Based on systemtap traceio.stp
9 trace syscalls:sys_exit_read {
10 reads[execname()] <<< arg2
11 total_io[execname()] <<< arg2
14 trace syscalls:sys_exit_write {
15 writes[execname()] <<< arg2
16 total_io[execname()] <<< arg2
19 function humanread_digit(bytes) {
20 if (bytes > 1024*1024*1024) {
21 return bytes/1024/1024/1024
22 } elseif (bytes > 1024*1024) {
23 return bytes/1024/1024
24 } elseif (bytes > 1024) {
31 function humanread_x(bytes) {
32 if (bytes > 1024*1024*1024) {
34 } elseif (bytes > 1024*1024) {
36 } elseif (bytes > 1024) {
45 for (exec, _ in pairs(total_io)) {
46 local readnum = sum(reads[exec])
47 local writenum = sum(writes[exec])
48 printf("%15s r: %12d%s w: %12d%s\n", exec,
49 humanread_digit(readnum), humanread_x(readnum),
50 humanread_digit(writenum), humanread_x(writenum))