From 310eaeb60579110c5a8e2f31d87ec659ab66b3b8 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 5 Jun 2017 11:55:57 +0100 Subject: lib: Force global reset + uevents for hang detector The hang detector relies on a uevent for notification and aborting the test. As proposed, fine-grained resets may not produce a global uevent and so this hang detection becomes void. As we don't expect any hang, we can just reduce the reset to only a global + uevent and so maintain functionality, and switch back to fine-grained resets afterwards. Note that any test that requires testing fine-grained resets should ensure that they are enabled first as igt may leave the global parameters in an inconsistent state. v2: Restore fine-grained resets for explict igt_allow_hang() Signed-off-by: Chris Wilson Cc: Michel Thierry Reviewed-by: Michel Thierry --- lib/igt_gt.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/igt_gt.c') diff --git a/lib/igt_gt.c b/lib/igt_gt.c index be44fcae..6f7daa5e 100644 --- a/lib/igt_gt.c +++ b/lib/igt_gt.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include #include #include #include @@ -162,6 +163,9 @@ igt_hang_t igt_allow_hang(int fd, unsigned ctx, unsigned flags) struct local_i915_gem_context_param param; unsigned ban; + igt_assert(igt_sysfs_set_parameter + (fd, "reset", "%d", INT_MAX /* any reset method */)); + if (!igt_check_boolean_env_var("IGT_HANG", true)) igt_skip("hang injection disabled by user"); gem_context_require_bannable(fd); -- cgit v1.2.3