drm/i915: Drop request retirement before reaping stale contexts
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 5 Jul 2017 14:26:33 +0000 (15:26 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 6 Jul 2017 10:51:18 +0000 (11:51 +0100)
Before we create a new context, we try and reap all the stale contexts
(i.e. those that are freed but waiting for a worker to come and return
their allocations to the system). Before we do this, we retire all
requests so that we clear any inflight no longer used contexts (who are
only being kept alived by those inflght requests). However, any context
that is finally unreferenced by this retirement is put onto an RCU list
and not available for immediately reaping, we stall for no immediate
benefit.

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

index c58a95c33c25322788c8f8dadb1e906e9229e187..4f6773ea7d85474de286396986e77e747ffa462b 100644 (file)
@@ -384,7 +384,6 @@ i915_gem_create_context(struct drm_i915_private *dev_priv,
        lockdep_assert_held(&dev_priv->drm.struct_mutex);
 
        /* Reap stale contexts */
-       i915_gem_retire_requests(dev_priv);
        contexts_free(dev_priv);
 
        ctx = __create_hw_context(dev_priv, file_priv);