[Intel-gfx] [PATCH igt] igt/drv_hangman: Use manual error-state generation

Chris Wilson chris at chris-wilson.co.uk
Thu Oct 20 09:07:39 UTC 2016


For the basic error state, we only desire that an error state be created
following a hang. For that purpose, we do not need a real hang (slow
6-12s) but can inject one instead (fast <1s).

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/drv_hangman.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/tests/drv_hangman.c b/tests/drv_hangman.c
index 953a4c6..bfe5eaf 100644
--- a/tests/drv_hangman.c
+++ b/tests/drv_hangman.c
@@ -32,6 +32,8 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
+#include "igt_debugfs.h"
+
 #ifndef I915_PARAM_CMD_PARSER_VERSION
 #define I915_PARAM_CMD_PARSER_VERSION       28
 #endif
@@ -166,15 +168,21 @@ static void test_error_state_basic(void)
 {
 	int fd;
 
-	fd = drm_open_driver(DRIVER_INTEL);
-
 	clear_error_state();
 	assert_error_state_clear();
 
-	submit_hang(fd, I915_EXEC_RENDER);
+	/* Manually trigger a hang by request a reset */
+	fd = igt_debugfs_open("i915_wedged", O_WRONLY);
+	igt_ignore_warn(write(fd, "1\n", 2));
+	close(fd);
+
+	/* Wait for the error capture and gpu reset to complete */
+	fd = drm_open_driver(DRIVER_INTEL);
+	gem_quiescent_gpu(fd);
 	close(fd);
 
 	assert_error_state_collected();
+
 	clear_error_state();
 	assert_error_state_clear();
 }
-- 
2.9.3



More information about the Intel-gfx mailing list