From de609e0ae0a1466000e1d2238e7c1c64e0252074 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 19 Jun 2018 11:45:06 +0100 Subject: igt/gem_sync: Double the wakeups, twice the pain To further defeat any contemplated spin-optimisations to avoid the irq latency for synchronous wakeups, increase the queue length. Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen --- tests/gem_sync.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/gem_sync.c b/tests/gem_sync.c index 747412c5..60d61a02 100644 --- a/tests/gem_sync.c +++ b/tests/gem_sync.c @@ -178,7 +178,7 @@ idle_ring(int fd, unsigned ring, int timeout) } static void -wakeup_ring(int fd, unsigned ring, int timeout) +wakeup_ring(int fd, unsigned ring, int timeout, int wlen) { unsigned engines[16]; const char *names[16]; @@ -243,7 +243,8 @@ wakeup_ring(int fd, unsigned ring, int timeout) while (!READ_ONCE(*spin->running)) ; - gem_execbuf(fd, &execbuf); + for (int n = 0; n < wlen; n++) + gem_execbuf(fd, &execbuf); this = gettime(); igt_spin_batch_end(spin); @@ -851,7 +852,9 @@ igt_main igt_subtest_f("idle-%s", e->name) idle_ring(fd, e->exec_id | e->flags, 150); igt_subtest_f("wakeup-%s", e->name) - wakeup_ring(fd, e->exec_id | e->flags, 150); + wakeup_ring(fd, e->exec_id | e->flags, 150, 1); + igt_subtest_f("double-wakeup-%s", e->name) + wakeup_ring(fd, e->exec_id | e->flags, 150, 2); igt_subtest_f("store-%s", e->name) store_ring(fd, e->exec_id | e->flags, 1, 150); igt_subtest_f("many-%s", e->name) @@ -873,7 +876,9 @@ igt_main igt_subtest("forked-store-each") store_ring(fd, ALL_ENGINES, ncpus, 150); igt_subtest("wakeup-each") - wakeup_ring(fd, ALL_ENGINES, 150); + wakeup_ring(fd, ALL_ENGINES, 150, 1); + igt_subtest("double-wakeup-each") + wakeup_ring(fd, ALL_ENGINES, 150, 2); igt_subtest("basic-all") sync_all(fd, 1, 5); -- cgit v1.2.3