For fast preempt-resets, error capture is skipped, so disable preempt-resets before checking the error state. While thinking ahead, be prepared for when the modparams are not accessible. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- lib/igt_gt.c | 7 ++++--- tests/i915/i915_hangman.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/igt_gt.c b/lib/igt_gt.c index 78e3cd089..5ca77471c 100644 --- a/lib/igt_gt.c +++ b/lib/igt_gt.c @@ -162,6 +162,7 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags) struct drm_i915_gem_context_param param = { .ctx_id = ctx, }; + int allow_reset; unsigned ban; /* @@ -177,9 +178,7 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags) if (!igt_check_boolean_env_var("IGT_HANG_WITHOUT_RESET", false)) igt_require(has_gpu_reset(fd)); - igt_require(igt_sysfs_set_parameter - (fd, "reset", "%d", INT_MAX /* any reset method */)); - + allow_reset = 1; if ((flags & HANG_ALLOW_CAPTURE) == 0) { param.param = I915_CONTEXT_PARAM_NO_ERROR_CAPTURE; param.value = 1; @@ -188,7 +187,9 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags) * the right one). */ __gem_context_set_param(fd, ¶m); + allow_reset = INT_MAX; /* any reset method */ } + igt_require(igt_sysfs_set_parameter(fd, "reset", "%d", allow_reset)); ban = context_get_ban(fd, ctx); if ((flags & HANG_ALLOW_BAN) == 0) diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c index 58141fc92..7a158d8db 100644 --- a/tests/i915/i915_hangman.c +++ b/tests/i915/i915_hangman.c @@ -140,12 +140,13 @@ static void check_error_state(const char *expected_ring_name, size_t line_size = 0; bool found = false; - igt_debug("%s(expected ring name=%s, expected offset=%"PRIx64")\n", - __func__, expected_ring_name, expected_offset); igt_debugfs_dump(device, "i915_error_state"); igt_assert(getline(&line, &line_size, file) != -1); - igt_assert(strcasecmp(line, "No error state collected")); + igt_require(strcasecmp(line, "No error state collected")); + + igt_debug("%s(expected ring name=%s, expected offset=%"PRIx64")\n", + __func__, expected_ring_name, expected_offset); while (getline(&line, &line_size, file) > 0) { char *dashes; -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx