summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2011-11-10 11:12:10 -0200
committerEugeni Dodonov <eugeni.dodonov@intel.com>2011-11-10 11:33:05 -0200
commit48186febf17490820dc089172c58526664255417 (patch)
tree05dc1ef7c674ff912e7d90b4f6cddafbb1f31ce5 /tests
parent31a4b13132d8d3c1c8e2d16205b9785f4e6bb48d (diff)
tests: add test for kernel segmentation fault
As asked by Daniel Vetter, this is a tech which checks if we can cause division by zero in kernel by reading the i915_emon_status debugfs entry repeatably. Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am1
-rwxr-xr-xtests/debugfs_emon_crash34
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 525380ef..dffda411 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -56,6 +56,7 @@ TESTS_progs = \
TESTS_scripts = \
debugfs_reader \
+ debugfs_emon_crash \
$(NULL)
kernel_tests = \
diff --git a/tests/debugfs_emon_crash b/tests/debugfs_emon_crash
new file mode 100755
index 00000000..63e193d8
--- /dev/null
+++ b/tests/debugfs_emon_crash
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# This check if we can crash the kernel with segmentation-fault
+# by reading /sys/kernel/debug/dri/0/i915_emon_status too quickly
+#
+
+if [ -d /debug/dri ] ; then
+ debugfs_path=/debug_dri
+fi
+
+if [ -d /sys/kernel/debug/dri ] ; then
+ debugfs_path=/sys/kernel/debug/dri
+fi
+
+i915_path=x
+for dir in `ls $debugfs_path` ; do
+ if [ -f $debugfs_path/$dir/i915_error_state ] ; then
+ i915_path=$debugfs_path/$dir
+ break
+ fi
+done
+
+if [ $i915_path = "x" ] ; then
+ echo i915 debugfs path not found.
+ exit 1
+fi
+
+for z in $(seq 1 1000); do
+ cat $i915_path/i915_emon_status > /dev/null
+done
+
+# If we got here, we haven't crashed
+
+exit 0