Pārlūkot izejas kodu

drm/i915: Add a warning on shutdown if signal threads still active

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
Chris Wilson 9 gadi atpakaļ
vecāks
revīzija
381744f806
1 mainītis faili ar 6 papildinājumiem un 0 dzēšanām
  1. 6 0
      drivers/gpu/drm/i915/intel_breadcrumbs.c

+ 6 - 0
drivers/gpu/drm/i915/intel_breadcrumbs.c

@@ -623,6 +623,12 @@ void intel_engine_fini_breadcrumbs(struct intel_engine_cs *engine)
 {
 {
 	struct intel_breadcrumbs *b = &engine->breadcrumbs;
 	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))
 	if (!IS_ERR_OR_NULL(b->signaler))
 		kthread_stop(b->signaler);
 		kthread_stop(b->signaler);