#!/bin/bash # # Testcase: Simulate gpu hang # # This check uses the stop_rings facility to exercise the gpu hang code. # by reading /sys/kernel/debug/dri/0/i915_emon_status too quickly # SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )" . $SOURCE_DIR/drm_lib.sh oldpath=`pwd` cd $i915_path if [ ! -f i915_ring_stop ] ; then echo "kernel doesn't support ring stopping" exit 77 fi if cat i915_error_state | grep -v "no error state collected" > /dev/null ; then echo "gpu hang dectected" exit 1 fi # stop rings echo 0xf > i915_ring_stop echo "rings stopped" (cd $oldpath; $SOURCE_DIR/gem_exec_nop) > /dev/null if cat i915_error_state | grep -v "no error state collected" > /dev/null ; then echo "gpu hang correctly dectected" else echo "gpu hang not dectected" exit 2 fi # clear error state echo > i915_error_state exit 0