diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-05-05 10:57:12 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-05-05 11:09:30 +0100 |
commit | 4bd9fe6e3409d59e618053f908e33bc291d295f4 (patch) | |
tree | 471f6bf4c9d700a8c60fc5d0a0dad8cba40f201f | |
parent | c864279de620a6e211b8a197dbdf9e3e1e2b60ab (diff) |
gem_alive: A utility to see if the driver or GPU has hung
-rw-r--r-- | lib/igt_debugfs.h | 1 | ||||
-rw-r--r-- | tests/.gitignore | 1 | ||||
-rw-r--r-- | tests/Makefile.sources | 1 | ||||
-rw-r--r-- | tests/gem_alive.c | 35 |
4 files changed, 38 insertions, 0 deletions
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h index bcd7f762..0b55477c 100644 --- a/lib/igt_debugfs.h +++ b/lib/igt_debugfs.h @@ -27,6 +27,7 @@ #include <stdbool.h> #include <stdint.h> +#include <stdio.h> enum pipe; diff --git a/tests/.gitignore b/tests/.gitignore index fedddbfd..ea1f0f9e 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -9,6 +9,7 @@ drm_vma_limiter_cached drm_vma_limiter_cpu drm_vma_limiter_gtt drv_suspend +gem_alive gem_bad_address gem_bad_batch gem_bad_blit diff --git a/tests/Makefile.sources b/tests/Makefile.sources index a8a091de..5d5dc467 100644 --- a/tests/Makefile.sources +++ b/tests/Makefile.sources @@ -1,4 +1,5 @@ noinst_PROGRAMS = \ + gem_alive \ gem_stress \ ddi_compute_wrpll \ $(TESTS_progs) \ diff --git a/tests/gem_alive.c b/tests/gem_alive.c new file mode 100644 index 00000000..776db07a --- /dev/null +++ b/tests/gem_alive.c @@ -0,0 +1,35 @@ +#include <sys/ioctl.h> +#include <fcntl.h> +#include <errno.h> +#include <string.h> +#include <signal.h> +#include <i915_drm.h> + +#include "drmtest.h" + +int main(void) +{ + struct drm_i915_gem_sw_finish arg = { 0 }; + int fd; + + signal(SIGALRM, SIG_IGN); + + fd = drm_open_any(); + if (fd < 0) + return 77; + + alarm(1); + if (ioctl(fd, DRM_IOCTL_I915_GEM_SW_FINISH, &arg) == 0) + return 77; + + switch (errno) { + case ENOENT: + return 0; + case EIO: + return 1; + case EINTR: + return 2; + default: + return 3; + } +} |