gem_alive: A utility to see if the driver or GPU has hung

This commit is contained in:
Chris Wilson 2014-05-05 10:57:12 +01:00
parent c864279de6
commit 4bd9fe6e34
4 changed files with 38 additions and 0 deletions

View File

@ -27,6 +27,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
enum pipe;

1
tests/.gitignore vendored
View File

@ -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

View File

@ -1,4 +1,5 @@
noinst_PROGRAMS = \
gem_alive \
gem_stress \
ddi_compute_wrpll \
$(TESTS_progs) \

35
tests/gem_alive.c Normal file
View File

@ -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;
}
}