summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/profiling/functioncallcount.stp
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.examples/profiling/functioncallcount.stp')
-rw-r--r--testsuite/systemtap.examples/profiling/functioncallcount.stp17
1 files changed, 17 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/profiling/functioncallcount.stp b/testsuite/systemtap.examples/profiling/functioncallcount.stp
new file mode 100644
index 00000000..e393b612
--- /dev/null
+++ b/testsuite/systemtap.examples/profiling/functioncallcount.stp
@@ -0,0 +1,17 @@
+# The following line command will probe all the functions
+# in kernel's memory management code:
+#
+# stap functioncallcount.stp "*@mm/*.c"
+
+probe kernel.function(@1) { # probe functions listed on commandline
+ called[probefunc()] <<< 1 # add a count efficiently
+}
+
+global called
+
+probe end {
+ foreach (fn in called-) # Sort by call count (in decreasing order)
+ # (fn+ in called) # Sort by function name
+ printf("%s %d\n", fn, @count(called[fn]))
+ exit()
+}