mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-07-24 02:16:03 +00:00
tests: Simulate missed breadcrumb irqs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
11d5859b28
commit
b53f22cee7
@ -132,6 +132,7 @@ TESTS_scripts = \
|
||||
test_rte_check \
|
||||
tools_test \
|
||||
ZZ_hangman \
|
||||
ZZ_missed_irq \
|
||||
$(NULL)
|
||||
|
||||
# This target contains testcases which support automagic subtest enumeration
|
||||
|
70
tests/ZZ_missed_irq
Executable file
70
tests/ZZ_missed_irq
Executable file
@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Testcase: Simulate missed breadcrumb interrupts
|
||||
#
|
||||
|
||||
SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
|
||||
test $SOURCE_DIR = . && SOURCE_DIR="`pwd`"
|
||||
. $SOURCE_DIR/drm_lib.sh
|
||||
cd $i915_dfs_path
|
||||
|
||||
echo $SOURCE_DIR
|
||||
|
||||
function check_for_missed_irq {
|
||||
if test `cat i915_ring_missed_irq` = 0x00000000; then
|
||||
echo "missed interrupts undetected"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function check_for_hang {
|
||||
if cat i915_error_state | grep -v "no error state collected" > /dev/null ; then
|
||||
echo "gpu hang reported"
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
if [ ! -f i915_ring_missed_irq ] ; then
|
||||
echo "kernel doesn't support interrupt masking"
|
||||
exit 77
|
||||
fi
|
||||
|
||||
# clear error state first
|
||||
echo > i915_error_state
|
||||
check_for_hang
|
||||
|
||||
echo 0xf > i915_ring_test_irq
|
||||
echo "Interrupts masked"
|
||||
if test `cat i915_ring_test_irq` != 0x0000000f; then
|
||||
echo "Failed to set interrupt mask"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
$SOURCE_DIR/gem_exec_big > /dev/null
|
||||
|
||||
check_for_missed_irq
|
||||
check_for_hang
|
||||
|
||||
$SOURCE_DIR/gem_exec_big > /dev/null
|
||||
|
||||
check_for_hang
|
||||
|
||||
echo 0 > i915_ring_test_irq
|
||||
echo "Interrupts unmasked"
|
||||
if test `cat i915_ring_test_irq` != 0x00000000; then
|
||||
echo "Failed to clear interrupt mask"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
$SOURCE_DIR/gem_exec_big > /dev/null
|
||||
|
||||
check_for_hang
|
||||
|
||||
echo 0 > i915_ring_missed_irq
|
||||
echo "Cleared missed interrupts"
|
||||
if test `cat i915_ring_missed_irq` != 0x00000000; then
|
||||
echo "Failed to clear missed interrupts"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
exit 0
|
Loading…
x
Reference in New Issue
Block a user