#! /usr/bin/env stap
#
-# Copyright (C) 2010 Red Hat, Inc.
+# Copyright (C) 2010-2015 Red Hat, Inc.
# Written by William Cohen <wcohen@redhat.com>
#
# The linetimes.stp script takes two arguments: where to find the function
}
probe end {
- printf("\n%s called %d", @2, @count(calls));
+ printf("\n%s %s call count: %d\n", @1, @2, @count(calls));
printf("\n%-58s %10s %10s\n", "region", "avg(us)", "max(us)");
foreach (p+ in region) {
printf("%-58s %10d %10d\n", p, @avg(region[p]), @max(region[p]));
}
- printf("\ncontrol flow graph information\n")
+ printf("\n\ncontrol flow graph information\n")
printf("from\n\tto\n=======================\n")
- foreach ([src+, dest] in cfg) {
- /* print elements */
- if (old_src != src) {
- if (count == 1) printf (" %d\n", old_count);
- printf ("%-s", src)
- count = 1
- } else {
- if (count == 1) {
- if (old_dest == src)
- printf ("\n\t%-s %d\n", old_dest, old_count);
- else
- printf ("\n\t%-s %d\n", old_dest, old_count);
- }
- ++count;
- printf ("\t%-s %d\n", dest, @count(cfg[src,dest]));
- }
- old_src = src
- old_dest = dest
- old_count = @count(cfg[src,dest])
+ foreach ([src+] in region) {
+ printf("%-s\n", src)
+ foreach ([s,dest+] in cfg[src,*]) { # slice for all dest's
+ printf("\t%-s %d\n", dest, @count(cfg[src,dest]));
+ }
}
- /* print last element */
- if (old_src != "" && count == 1) printf (" %d\n", old_count)
}
--- /dev/null
+# stap linetimes.stp kernel tcp_sendmsg -c 'sleep 30'
+kernel tcp_sendmsg call count: 2366
+
+region avg(us) max(us)
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1088") 1 32
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1093") 1 31
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1099") 1 16
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1100") 1 62
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1109") 1 32
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1115") 1 15
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1121") 1 62
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1135") 1 32
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1137") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1140") 1 22
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1141") 1 15
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1142") 1 21
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1145") 1 53
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1148") 1 50
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1150") 1 42
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1151") 1 72
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1152") 1 51
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1155") 1 51
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1165") 1 57
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1167") 1 79
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1170") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1171") 1 3
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1173") 1 2
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1176") 1 3
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1184") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1187") 1 92
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1193") 1 62
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1194") 1 10
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1197") 1 63
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1198") 1 32
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1204") 1 42
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1209") 1 42
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1210") 1 31
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1213") 1 49
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1215") 1 62
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1259") 1 32
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1260") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1262") 1 61
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1263") 1 112
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1264") 1 12
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1266") 1 31
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1267") 1 62
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1268") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1273") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1276") 1 51
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1279") 1 12
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1280") 3 55
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1298") 1 112
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1299") 5 83
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1301") 2 56
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1302") 1 52
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1321") 1 53
+
+
+control flow graph information
+from
+ to
+=======================
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1088")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1099") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1204")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1198") 3800
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1165")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1167") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1276")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1279") 1504
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1184")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1187") 3800
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1099")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1093") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1193")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1194") 220
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1197") 3580
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1141")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1140") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1263")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1266") 3870
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1150")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1151") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1140")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1148") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1302")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1321") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1088")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1099") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1209")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1210") 3870
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1268")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1273") 1504
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1298") 2366
+kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1299")
+ kernel.statement("tcp_sendmsg@net/ipv4/tcp.c:1301") 2366
+