diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2021-01-03 15:06:37 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2021-01-03 15:08:51 +0000 |
commit | 10629b2147503b8155485b0f433b5169c07b70a4 (patch) | |
tree | 17961e33642db856c310cb055f225280c67b2037 /tests/i915 | |
parent | 7fbd0fa5544d8b4d0f2996a2cfdb25170fa7f435 (diff) |
i915/gem_spin_batch: Avoid igt_require() in the middle of a for loop of spinners
Don't accidentally SKIP a test after launching a bunch of spinners.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tests/i915')
-rw-r--r-- | tests/i915/gem_spin_batch.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/tests/i915/gem_spin_batch.c b/tests/i915/gem_spin_batch.c index d625efe2..5cd02d55 100644 --- a/tests/i915/gem_spin_batch.c +++ b/tests/i915/gem_spin_batch.c @@ -142,20 +142,24 @@ spin_on_all_engines(int fd, unsigned long flags, unsigned int timeout_sec) static void spin_all(int i915, unsigned int flags) #define PARALLEL_SPIN_NEW_CTX BIT(0) { + const struct intel_execution_engine2 *e; struct igt_spin *spin, *n; IGT_LIST_HEAD(list); - for_each_physical_ring(e, i915) { + __for_each_physical_engine(i915, e) { uint32_t ctx; + if (!gem_class_can_store_dword(i915, e->class)) + continue; + ctx = 0; if (flags & PARALLEL_SPIN_NEW_CTX) - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); /* Prevent preemption so only one is allowed on each engine */ spin = igt_spin_new(i915, .ctx = ctx, - .engine = eb_ring(e), + .engine = e->flags, .flags = (IGT_SPIN_POLL_RUN | IGT_SPIN_NO_PREEMPTION)); if (ctx) @@ -167,6 +171,8 @@ static void spin_all(int i915, unsigned int flags) igt_list_for_each_entry_safe(spin, n, &list, link) { igt_assert(gem_bo_busy(i915, spin->handle)); + igt_spin_end(spin); + gem_sync(i915, spin->handle); igt_spin_free(i915, spin); } } |