[PATCH v2 2/2] drm/i915: Mark bonded requests as non-preemptable
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed May 20 13:57:33 UTC 2020
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Once bonded requests are executing in parallel it is at least sub-
optimal to preempt one of them and could even lead to GPU hangs with
media workloads.
Mark the bonded pairs as non-preemptable so once running they remain in
lock-step.
v2:
* No preempt flag is already handled in effective_prio. (Chris)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Suggested-by: Xiaogang Li <xiaogang.li at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
---
drivers/gpu/drm/i915/gt/intel_lrc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 3e367f6e4963..0f535d6bad41 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -4928,6 +4928,9 @@ static void execlists_park(struct intel_engine_cs *engine)
static void
mark_bonded_pair(struct i915_request *rq, struct i915_request *signal)
{
+ set_bit(I915_FENCE_FLAG_NOPREEMPT, &rq->fence.flags);
+ set_bit(I915_FENCE_FLAG_NOPREEMPT, &signal->fence.flags);
+
intel_context_set_single_submission(rq->context);
intel_context_set_single_submission(signal->context);
}
--
2.20.1
More information about the Intel-gfx-trybot
mailing list