drm/i915: Add a warning on shutdown if signal threads still active
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 21 Nov 2016 11:07:59 +0000 (11:07 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 21 Nov 2016 11:49:06 +0000 (11:49 +0000)
When unloading the module, it is expected that we have finished
executing all requests and so the signal threads should be idle. Add a
warning in case there are any residual requests in the signaler rbtrees
at that point.

v2: We can also warn if there are any waiters

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161121110759.22896-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_breadcrumbs.c

index c9c46a538edb1cd33a3a9530cf3815bb1e8d03c2..53ae7884babdee62c374178edde699414ecdf721 100644 (file)
@@ -623,6 +623,12 @@ void intel_engine_fini_breadcrumbs(struct intel_engine_cs *engine)
 {
        struct intel_breadcrumbs *b = &engine->breadcrumbs;
 
+       /* The engines should be idle and all requests accounted for! */
+       WARN_ON(READ_ONCE(b->first_wait));
+       WARN_ON(!RB_EMPTY_ROOT(&b->waiters));
+       WARN_ON(READ_ONCE(b->first_signal));
+       WARN_ON(!RB_EMPTY_ROOT(&b->signals));
+
        if (!IS_ERR_OR_NULL(b->signaler))
                kthread_stop(b->signaler);