lib: Add a GPU error detector

If we listen to the uevents from the kernel, we can detect when the GPU
hangs. This requires us to fork a helper process to do so and send a
signal back to the parent.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson
2016-03-22 11:33:41 +00:00
parent eb572106b4
commit 756f3e0cb7
9 changed files with 102 additions and 8 deletions
+1 -2
View File
@@ -56,9 +56,8 @@ AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) $(DEBUG_CFLAGS)\
$(LIBUNWIND_CFLAGS) \
$(NULL)
LDADD = ../lib/libintel_tools.la $(PCIACCESS_LIBS) $(DRM_LIBS) $(LIBUNWIND_LIBS) $(TIMER_LIBS)
LDADD = ../lib/libintel_tools.la $(GLIB_LIBS)
LDADD += $(CAIRO_LIBS) $(LIBUDEV_LIBS) $(GLIB_LIBS) -lm
AM_CFLAGS += $(CAIRO_CFLAGS) $(LIBUDEV_CFLAGS) $(GLIB_CFLAGS)
AM_LDFLAGS = -Wl,--as-needed
+4
View File
@@ -368,6 +368,8 @@ igt_main
igt_fixture
fd = drm_open_driver_master(DRIVER_INTEL);
igt_fork_hang_detector(fd);
for (const struct mode *m = modes; m->name; m++)
igt_subtest_f("%s", *m->name ? m->name : "basic")
whisper(fd, -1, m->flags);
@@ -382,6 +384,8 @@ igt_main
whisper(fd, e->exec_id | e->flags, m->flags);
}
igt_stop_hang_detector();
igt_fixture
close(fd);
}