drm/i915/breadcrumbs: Assert all missed breadcrumbs were signaled
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 22 Feb 2018 09:25:45 +0000 (09:25 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 6 Mar 2018 12:12:46 +0000 (12:12 +0000)
When parking the engines and their breadcrumbs, if we have waiters left
then they missed their wakeup. Verify that each waiter's seqno did
complete.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180222092545.17216-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_breadcrumbs.c

index 03bbc1d..6a74061 100644 (file)
@@ -247,6 +247,8 @@ void intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine)
        spin_unlock(&b->irq_lock);
 
        rbtree_postorder_for_each_entry_safe(wait, n, &b->waiters, node) {
+               GEM_BUG_ON(!i915_seqno_passed(intel_engine_get_seqno(engine),
+                                             wait->seqno));
                RB_CLEAR_NODE(&wait->node);
                wake_up_process(wait->tsk);
        }