Commit 69dc4d00 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Only trigger missed-seqno checking next to boundary

If we have more interrupts pending (because we know there are more
breadcrumb signals before the completion), then we do not need to
trigger an irq_seqno_barrier or even wakeup the task on this interrupt
as there will be another. To allow some margin of error (we are trying
to work around incoherent seqno after all), we wakeup the breadcrumb
before the target as well as on the target.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180627201304.15817-2-chris@chris-wilson.co.uk
parent 3f88325c
...@@ -1191,7 +1191,8 @@ static void notify_ring(struct intel_engine_cs *engine) ...@@ -1191,7 +1191,8 @@ static void notify_ring(struct intel_engine_cs *engine)
tsk = wait->tsk; tsk = wait->tsk;
} else { } else {
if (engine->irq_seqno_barrier) { if (engine->irq_seqno_barrier &&
i915_seqno_passed(seqno, wait->seqno - 1)) {
set_bit(ENGINE_IRQ_BREADCRUMB, set_bit(ENGINE_IRQ_BREADCRUMB,
&engine->irq_posted); &engine->irq_posted);
tsk = wait->tsk; tsk = wait->tsk;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment