diff options
author | Dominik Grzegorzek <dominik.grzegorzek@intel.com> | 2020-05-28 10:27:37 +0200 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-05-28 10:31:36 +0100 |
commit | e5371a99a877be134c6ad5361a5f03843a66f775 (patch) | |
tree | d76b267cad1548bebe46209bef38d98552741cc5 | |
parent | ab32fdc01274591c4b3f531b929bc243d7e0c536 (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.c | 12 |
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; |