summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Grzegorzek <dominik.grzegorzek@intel.com>2020-05-28 10:27:37 +0200
committerChris Wilson <chris@chris-wilson.co.uk>2020-05-28 10:31:36 +0100
commite5371a99a877be134c6ad5361a5f03843a66f775 (patch)
treed76b267cad1548bebe46209bef38d98552741cc5
parentab32fdc01274591c4b3f531b929bc243d7e0c536 (diff)
i915/gem_exec_fence: Reduce non-preemptible workload
Non-preemptible spinners should be avoided as often as possible. gem_exec_fence@[basic-await, nb-await] has no reason to use non-preemptible workload, only hanging subtests need it. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--tests/i915/gem_exec_fence.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index ad22f9f57..863386c55 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -329,6 +329,14 @@ static void test_fence_busy_all(int fd, unsigned flags)
gem_quiescent_gpu(fd);
}
+static unsigned int spin_hang(unsigned int flags)
+{
+ if (!(flags & HANG))
+ return 0;
+
+ return IGT_SPIN_NO_PREEMPTION | IGT_SPIN_INVALID_CS;
+}
+
static void test_fence_await(int fd, const struct intel_execution_engine2 *e,
unsigned flags)
{
@@ -344,9 +352,7 @@ static void test_fence_await(int fd, const struct intel_execution_engine2 *e,
spin = igt_spin_new(fd,
.engine = e->flags,
- .flags = (IGT_SPIN_FENCE_OUT |
- IGT_SPIN_NO_PREEMPTION |
- (flags & HANG ? IGT_SPIN_INVALID_CS : 0)));
+ .flags = IGT_SPIN_FENCE_OUT | spin_hang(flags));
igt_assert(spin->out_fence != -1);
i = 0;