gitlab-ci: add capture for i915 error state
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 17 May 2023 19:41:51 +0000 (22:41 +0300)
committerMarge Bot <emma+marge@anholt.net>
Thu, 18 May 2023 19:15:19 +0000 (19:15 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23099>

.gitlab-ci/common/capture-devcoredump.sh

index ae37053..f40b748 100755 (executable)
@@ -10,5 +10,23 @@ while true; do
       exit 0
     fi
   done
+  i915_error_states=$(find /sys/devices/ -path */drm/card*/error)
+  for i in $i915_error_states; do
+    tmpfile=$(mktemp)
+    cp "$i" "$tmpfile"
+    filesize=$(stat --printf="%s" "$tmpfile")
+    # Does the file contain "No error state collected" ?
+    if [ "$filesize" = 25 ]; then
+        rm "$tmpfile"
+    else
+        echo "Found an i915 error state at $i size=$filesize."
+        if cp "$tmpfile" /results/first.i915_error_state; then
+            rm "$tmpfile"
+            echo 1 > "$i"
+            echo "Saved to the job artifacts at /first.i915_error_state"
+            exit 0
+        fi
+    fi
+  done
   sleep 10
 done