summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-10-20 23:34:33 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-10-25 16:13:32 +0100
commit12ee485a1e23bd49b754751fa82859012f751a1a (patch)
tree5ec0942f228b5d017a2d0ef715f96cedb32815e6 /tests
parente7742ee1a8e1cdc00c799531bcd90a421405b888 (diff)
igt/drv_hangman: Skip aliased I915_EXEC_BSD
If the system has bsd2, we do not know which ring the kernel will alias I915_EXEC_BSD onto and so we do not what the matching string should be. Skip the unknown. v2: Deny the aliased I915_EXEC_BSD exists at all; be specific! Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103324 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> CC: MichaƂ Winiarski <michal.winiarski@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/drv_hangman.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/drv_hangman.c b/tests/drv_hangman.c
index 0551ec16..40c82257 100644
--- a/tests/drv_hangman.c
+++ b/tests/drv_hangman.c
@@ -184,6 +184,7 @@ static void test_error_state_capture(unsigned ring_id,
uint64_t offset;
igt_require(gem_has_ring(device, ring_id));
+
clear_error_state();
hang = igt_hang_ctx(device, 0, ring_id, HANG_ALLOW_CAPTURE, &offset);
@@ -254,6 +255,20 @@ igt_main
if (e->exec_id == 0)
continue;
+ /*
+ * If the device has 2 BSD rings then due to obtuse aliasing
+ * in the API, we can not determine which ring I915_EXEC_BSD
+ * will map to, and so must skip the test; as the matching name
+ * may be either bsd or bsd2 depending on the kernel/test
+ * ordering.
+ *
+ * Here we are not checking that executing on every ABI engine
+ * results in a detectable hang, but that a hang generated
+ * from a specific HW engine gives an indentifiable result.
+ */
+ if (e->exec_id == I915_EXEC_BSD && e->flags == 0)
+ continue;
+
igt_subtest_f("error-state-capture-%s", e->name)
test_error_state_capture(e->exec_id | e->flags,
e->full_name);