Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / staging / ktap / samples / io / traceio.kp
1 #! /usr/bin/env ktap
2
3 # Based on systemtap traceio.stp
4
5 reads = ptable()
6 writes = ptable()
7 total_io = ptable()
8
9 trace syscalls:sys_exit_read {
10         reads[execname()] <<< arg2
11         total_io[execname()] <<< arg2
12 }
13
14 trace syscalls:sys_exit_write {
15         writes[execname()] <<< arg2
16         total_io[execname()] <<< arg2
17 }
18
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) {
25                 return bytes/1024
26         } else {
27                 return bytes
28         }
29 }
30
31 function humanread_x(bytes) {
32         if (bytes > 1024*1024*1024) {
33                 return " GiB"
34         } elseif (bytes > 1024*1024) {
35                 return " MiB"
36         } elseif (bytes > 1024) {
37                 return " KiB"
38         } else {
39                 return "   B"
40         }
41 }
42
43 tick-1s {
44         ansi.clear_screen()
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))
51         }
52         printf("\n")
53 }
54