[Intel-gfx] [PATCH igt] igt/sw_sync: Fix up close(timeline) tests for unsignaled fences

Chris Wilson chris at chris-wilson.co.uk
Mon Sep 11 12:35:10 UTC 2017


Following

kernel commit ea4d5a270b57fa8d4871f372ca9b97b7697fdfda
Author: Dominik Behr <dbehr at chromium.org>
Date:   Thu Sep 7 16:02:46 2017 -0300

    dma-buf/sw_sync: force signal all unsignaled fences on dying timeline

    To avoid hanging userspace components that might have been waiting on the
    active fences of the destroyed timeline we need to signal with error all
    remaining fences on such timeline.

    This restore the default behaviour of the Android sw_sync framework, which
    Android still relies on. It was broken on the dma fence conversion a few
    years ago and never fixed.

unsignaled fences are now signaled and flagged with ENOENT when the
timeline is closed. Fixup timeline_closed_signaled to match.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102650
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/sw_sync.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index 946592e8..20dfbbb9 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -82,8 +82,10 @@ static void test_timeline_closed(void)
 	fence = sw_sync_timeline_create_fence(timeline, 1);
 
 	close(timeline);
-	igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
+	igt_assert_f(sync_fence_wait(fence, 0) == 0,
 		     "Failure waiting on unsignaled fence on closed timeline\n");
+	igt_assert_f(sync_fence_status(fence) == -ENOENT,
+		     "Failure in marking up an unsignaled fence on closed timeline\n");
 }
 
 static void test_timeline_closed_signaled(void)
-- 
2.14.1



More information about the Intel-gfx mailing list