summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2007-04-05 19:46:39 +0000
committerhunt <hunt>2007-04-05 19:46:39 +0000
commitd357359ab12c1f6f87123e912d0dfc0954a6b8c8 (patch)
tree57812d2f7baec40533a6c27fb45d85faf0cd8bb7
parent248ef2c66402533503afae602b73a24ef07d45a8 (diff)
downloadsystemtap-steved-d357359ab12c1f6f87123e912d0dfc0954a6b8c8.tar.gz
systemtap-steved-d357359ab12c1f6f87123e912d0dfc0954a6b8c8.tar.xz
systemtap-steved-d357359ab12c1f6f87123e912d0dfc0954a6b8c8.zip
2007-04-05 Martin Hunt <hunt@redhat.com>
* bench2/var_bench, var.st, const.st: New test.
-rw-r--r--runtime/ChangeLog4
-rw-r--r--runtime/bench2/const.st31
-rw-r--r--runtime/bench2/var.st27
-rwxr-xr-xruntime/bench2/var_bench17
4 files changed, 79 insertions, 0 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index e8e25c84..ffc415f3 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,5 +1,9 @@
2007-04-05 Martin Hunt <hunt@redhat.com>
+ * bench2/var_bench, var.st, const.st: New test.
+
+2007-04-05 Martin Hunt <hunt@redhat.com>
+
* bench2/bench.rb (Stapbench::run): Check result code
of "killall staprun". If it is nonzero, something happened to
staprun. Print an error.
diff --git a/runtime/bench2/const.st b/runtime/bench2/const.st
new file mode 100644
index 00000000..a816daec
--- /dev/null
+++ b/runtime/bench2/const.st
@@ -0,0 +1,31 @@
+# constant variable
+
+# This is a test of the translator's ability to detect
+# when variables are never modified and to optimize
+# reading of them.
+
+global a
+
+# You can put initialization in here
+probe begin {
+ a = 1
+}
+
+# This gets probed millions of times. TEST gets replaces
+# by the real probe point.
+probe TEST {
+ if (a == 0)
+ printf("a is ZERO\n")
+
+}
+
+# something rarely called. Just here to be
+# as close as possible to "var.st".
+probe kernel.function("sys_delete_module")
+{
+}
+
+probe end {
+ printf("a=%d\n", a)
+}
+
diff --git a/runtime/bench2/var.st b/runtime/bench2/var.st
new file mode 100644
index 00000000..ab77bb06
--- /dev/null
+++ b/runtime/bench2/var.st
@@ -0,0 +1,27 @@
+# simple variable
+
+global a
+
+# You can put initialization in here
+probe begin {
+ a = 1
+}
+
+# This gets probed millions of times. TEST gets replaces
+# by the real probe point.
+probe TEST {
+ if (a == 0)
+ printf("a is ZERO\n")
+}
+
+# something rarely called. Just to force the optimizer
+# to not optimize access to "a"
+probe kernel.function("sys_delete_module")
+{
+ a = 2
+}
+
+probe end {
+ printf("a=%d\n", a)
+}
+
diff --git a/runtime/bench2/var_bench b/runtime/bench2/var_bench
new file mode 100755
index 00000000..a45d9170
--- /dev/null
+++ b/runtime/bench2/var_bench
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+load './bench.rb'
+
+# This is a test of the translator's ability to detect
+# when variables are never modified and to optimize
+# reading of them.
+
+["var.st","const.st"].each do |file|
+ File.open(file,"r") do |f|
+ desc = f.gets.sub(/^#/,'').strip
+ test = Stapbench.new(desc)
+ test.file = file
+ test.run
+ test.print
+ end
+end
+