summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/buildok/perfmon01.stp26
-rw-r--r--testsuite/systemtap.pass1-4/buildok.exp1
2 files changed, 27 insertions, 0 deletions
diff --git a/testsuite/buildok/perfmon01.stp b/testsuite/buildok/perfmon01.stp
new file mode 100755
index 00000000..00a47cc3
--- /dev/null
+++ b/testsuite/buildok/perfmon01.stp
@@ -0,0 +1,26 @@
+#! stap -p4
+
+# This exercises the perfom tapset.
+# for this to work the following needs to be set up:
+# 1) the processor on machine supported perfmon hardware
+# 2) libpfm and libpfm-devel available on machine
+# 3) systemtap translator built with "--enable-perfmon"
+
+global h1, h2
+global startt, starti
+
+probe perfmon.counter("cycles") { h1=$counter; }
+probe perfmon.counter("instructions") { h2=$counter; }
+
+probe kernel.function("sys_read"){
+ startt=read_counter(h1);
+ starti=read_counter(h2);
+}
+
+probe kernel.function("sys_read").return {
+ stopt=read_counter(h1);
+ stopi=read_counter(h2);
+
+ printf ("time = %d\n", stopt-startt);
+ printf ("instructions = %d\n", stopi-starti);
+}
diff --git a/testsuite/systemtap.pass1-4/buildok.exp b/testsuite/systemtap.pass1-4/buildok.exp
index 657f8558..9d05a9bb 100644
--- a/testsuite/systemtap.pass1-4/buildok.exp
+++ b/testsuite/systemtap.pass1-4/buildok.exp
@@ -9,6 +9,7 @@ foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
buildok/seven.stp {setup_kfail 9999 *-*-*}
buildok/process_test.stp {setup_kfail 9999 *-*-*}
buildok/syscall.stp {setup_kfail 9999 *-*-*}
+ buildok/perfmon01.stp {setup_kfail 9999 *-*-*}
}
if {$rc == 0} { pass $test } else { fail $test }
}