Manually setup the signal handler for SIGARLM so that we can dump some
debug information for test failures.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_ringsize.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_ctx_ringsize.c b/tests/i915/gem_ctx_ringsize.c
index c8e661472..4530b242f 100644
--- a/tests/i915/gem_ctx_ringsize.c
+++ b/tests/i915/gem_ctx_ringsize.c
@@ -25,6 +25,7 @@
 #include <fcntl.h>
 #include <inttypes.h>
 #include <math.h>
+#include <signal.h>
 #include <sys/ioctl.h>
 #include <sys/types.h>
 #include <unistd.h>
@@ -214,6 +215,10 @@ static uint32_t batch_create(int i915)
        return __batch_create(i915, 0);
 }
 
+static void sighandler(int sig)
+{
+}
+
 static unsigned int measure_inflight(int i915, unsigned int engine, int 
timeout)
 {
        IGT_CORK_FENCE(cork);
@@ -230,15 +235,18 @@ static unsigned int measure_inflight(int i915, unsigned 
int engine, int timeout)
        int err;
 
        fcntl(i915, F_SETFL, fcntl(i915, F_GETFL) | O_NONBLOCK);
-       igt_set_timeout(timeout, "execbuf blocked!");
+       signal(SIGALRM, sighandler);
+       alarm(timeout);
 
        gem_execbuf(i915, &execbuf);
        for (count = 1; (err = __execbuf(i915, &execbuf)) == 0; count++)
                ;
+       igt_debugfs_dump(i915, "i915_engine_info");
        igt_assert_eq(err, -EWOULDBLOCK);
        close(execbuf.rsvd2);
 
-       igt_reset_timeout();
+       alarm(0);
+       signal(SIGALRM, SIG_DFL);
        fcntl(i915, F_SETFL, fcntl(i915, F_GETFL) & ~O_NONBLOCK);
 
        igt_cork_unplug(&cork);
-- 
2.28.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to