From 384c5fe974abe35ab11dce4446dc5eed86585a3b Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 7 Aug 2008 16:47:18 -0400 Subject: samples: separate into subdirectories by subsystem --- .../profiling/functioncallcount.meta | 13 +++++++++ .../profiling/functioncallcount.stp | 17 ++++++++++++ .../systemtap.examples/profiling/thread-times.meta | 13 +++++++++ .../systemtap.examples/profiling/thread-times.stp | 32 ++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 testsuite/systemtap.examples/profiling/functioncallcount.meta create mode 100644 testsuite/systemtap.examples/profiling/functioncallcount.stp create mode 100644 testsuite/systemtap.examples/profiling/thread-times.meta create mode 100644 testsuite/systemtap.examples/profiling/thread-times.stp (limited to 'testsuite/systemtap.examples/profiling') diff --git a/testsuite/systemtap.examples/profiling/functioncallcount.meta b/testsuite/systemtap.examples/profiling/functioncallcount.meta new file mode 100644 index 00000000..4d419528 --- /dev/null +++ b/testsuite/systemtap.examples/profiling/functioncallcount.meta @@ -0,0 +1,13 @@ +title: Count Times Functions Called +name: functioncallcount.stp +version: 1.0 +author: anonymous +keywords: profiling functions +subsystem: kernel +status: production +exit: user-controlled +output: sorted-list on-exit +scope: system-wide +description: The functioncallcount.stp script takes one argument, a list of functions to probe. The script will run and count the number of times that each of the functions on the list is called. On exit the script will print a sorted list from most frequently to least frequently called function. +test_check: stap -p4 functioncallcount.stp "*@mm/*.c" +test_installcheck: stap functioncallcount.stp "*@mm/*.c" -c "sleep 1" 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() +} diff --git a/testsuite/systemtap.examples/profiling/thread-times.meta b/testsuite/systemtap.examples/profiling/thread-times.meta new file mode 100644 index 00000000..fcbf062e --- /dev/null +++ b/testsuite/systemtap.examples/profiling/thread-times.meta @@ -0,0 +1,13 @@ +title: Profile kernel functions +name: thread-times.stp +version: 1.0 +author: anonymous +keywords: profiling +subsystem: kernel +status: production +exit: user-controlled +output: sorted-list +scope: system-wide +description: The thread-times.stp script sets up time-based sampling. Every five seconds it prints out a sorted list with the top twenty processes with samples broken down into percentage total time spent in user-space and kernel-space. +test_check: stap -p4 thread-times.stp +test_installcheck: stap thread-times.stp -c "sleep 1" diff --git a/testsuite/systemtap.examples/profiling/thread-times.stp b/testsuite/systemtap.examples/profiling/thread-times.stp new file mode 100644 index 00000000..1aeb2037 --- /dev/null +++ b/testsuite/systemtap.examples/profiling/thread-times.stp @@ -0,0 +1,32 @@ +#! /usr/bin/stap + +probe timer.profile { + tid=tid() + if (!user_mode()) + kticks[tid] <<< 1 + else + uticks[tid] <<< 1 + ticks <<< 1 + tids[tid] <<< 1 +} + +global uticks, kticks, ticks + +global tids + +probe timer.s(5), end { + allticks = @count(ticks) + printf ("%5s %7s %7s (of %d ticks)\n", "tid", "%user", "%kernel", allticks) + foreach (tid in tids- limit 20) { + uscaled = @count(uticks[tid])*10000/allticks + kscaled = @count(kticks[tid])*10000/allticks + printf ("%5d %3d.%02d%% %3d.%02d%%\n", + tid, uscaled/100, uscaled%100, kscaled/100, kscaled%100) + } + printf("\n") + + delete uticks + delete kticks + delete ticks + delete tids +} -- cgit From a81c61ac1947cb5c13d3a758fc793a119b88b4e0 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 11 Aug 2008 12:24:47 +0200 Subject: PR2895. Add proper #! /usr/bin/env stap line. Make example scripts executable. --- testsuite/systemtap.examples/profiling/functioncallcount.stp | 0 testsuite/systemtap.examples/profiling/thread-times.stp | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 testsuite/systemtap.examples/profiling/functioncallcount.stp mode change 100644 => 100755 testsuite/systemtap.examples/profiling/thread-times.stp (limited to 'testsuite/systemtap.examples/profiling') diff --git a/testsuite/systemtap.examples/profiling/functioncallcount.stp b/testsuite/systemtap.examples/profiling/functioncallcount.stp old mode 100644 new mode 100755 diff --git a/testsuite/systemtap.examples/profiling/thread-times.stp b/testsuite/systemtap.examples/profiling/thread-times.stp old mode 100644 new mode 100755 -- cgit