From 947301563259726b65ce47d3a3fe37931ed42efe Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 8 Feb 2019 11:38:15 +0000 Subject: i915/gem_exec_scheduler: Disable alarm before exiting child Still the blighted Starting subtest: pi-ringfull-bsd child 0 died with signal 14, Alarm clock Subtest pi-ringfull-bsd: FAIL (0.133s) So let's make sure our timer cannot fire later on during exit. References https://bugs.freedesktop.org/show_bug.cgi?id=109584 Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Reviewed-by: Joonas Lahtinen --- tests/i915/gem_exec_schedule.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'tests/i915') diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c index d11e5736..00f9528a 100644 --- a/tests/i915/gem_exec_schedule.c +++ b/tests/i915/gem_exec_schedule.c @@ -1153,7 +1153,9 @@ static void test_pi_ringfull(int fd, unsigned int engine) bind_to_cpu(0); igt_fork(child, 1) { - result[0] = true; + int err; + + result[0] = vip != execbuf.rsvd1; igt_debug("Waking parent\n"); kill(getppid(), SIGALRM); @@ -1170,12 +1172,18 @@ static void test_pi_ringfull(int fd, unsigned int engine) */ igt_debug("HP child executing\n"); execbuf.rsvd1 = vip; - result[2] = __execbuf(fd, &execbuf) == 0; + err = __execbuf(fd, &execbuf); + igt_debug("HP execbuf returned %d\n", err); + + memset(&itv, 0, sizeof(itv)); + setitimer(ITIMER_REAL, &itv, NULL); + + result[2] = err == 0; } /* Relinquish CPU just to allow child to create a context */ sleep(1); - igt_assert_f(result[0], "HP context (child) not created"); + igt_assert_f(result[0], "HP context (child) not created\n"); igt_assert_f(!result[1], "Child released too early!\n"); /* Parent sleeps waiting for ringspace, releasing child */ -- cgit v1.2.3