[Intel-gfx] [PATCH 3/4] drm/i915: Consolidate checks for engine stats availability

Chris Wilson chris at chris-wilson.co.uk
Tue Nov 28 12:59:52 UTC 2017


Quoting Tvrtko Ursulin (2017-11-28 12:41:29)
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
> index cf1cc2cb6722..a8e63779de79 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -1453,6 +1453,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
>                 execlists->tasklet.func = guc_submission_tasklet;
>                 engine->park = guc_submission_park;
>                 engine->unpark = guc_submission_unpark;
> +
> +               engine->flags &= ~I915_ENGINE_SUPPORTS_STATS;
>         }
>  
>         return 0;
> @@ -1465,6 +1467,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
>  void intel_guc_submission_disable(struct intel_guc *guc)
>  {
>         struct drm_i915_private *dev_priv = guc_to_i915(guc);
> +       struct intel_engine_cs *engine;
> +       enum intel_engine_id id;
>  
>         GEM_BUG_ON(dev_priv->gt.awake); /* GT should be parked first */
>  
> @@ -1473,6 +1477,9 @@ void intel_guc_submission_disable(struct intel_guc *guc)
>         /* Revert back to manual ELSP submission */
>         intel_engines_reset_default_submission(dev_priv);
>  
> +       for_each_engine(engine, dev_priv, id)
> +               engine->flags |= I915_ENGINE_SUPPORTS_STATS;

Push this into engine->reset_default_submission, then the guc isn't
making an assumption about the other end. We unconditionally clear when
the guc takes over because the guc doesn't provide the stats.
-Chris


More information about the Intel-gfx mailing list