[Intel-gfx] [PATCH] drm/i915: Report engines are idle if already parked

Mika Kuoppala mika.kuoppala at linux.intel.com
Thu Feb 28 09:08:21 UTC 2019


Chris Wilson <chris at chris-wilson.co.uk> writes:

> If we have parked, then we must have passed an idleness test and still
> be idle. We chose not to use this shortcut in the past so that we could
> use the idleness test at any time and inspect HW. However, some HW like
> Sandybridge, doesn't like being woken up frivolously, so avoid doing so.
>
> References: 0b702dca2658 ("drm/i915: Avoid waking the engines just to check if they are idle")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at intel.com>

Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/intel_engine_cs.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
> index b7b626195eda..96a38f411bc7 100644
> --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> @@ -1033,7 +1033,7 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
>  	return ring_is_idle(engine);
>  }
>  
> -bool intel_engines_are_idle(struct drm_i915_private *dev_priv)
> +bool intel_engines_are_idle(struct drm_i915_private *i915)
>  {
>  	struct intel_engine_cs *engine;
>  	enum intel_engine_id id;
> @@ -1042,10 +1042,14 @@ bool intel_engines_are_idle(struct drm_i915_private *dev_priv)
>  	 * If the driver is wedged, HW state may be very inconsistent and
>  	 * report that it is still busy, even though we have stopped using it.
>  	 */
> -	if (i915_reset_failed(dev_priv))
> +	if (i915_reset_failed(i915))
>  		return true;
>  
> -	for_each_engine(engine, dev_priv, id) {
> +	/* Already parked (and passed an idleness test); must still be idle */
> +	if (!READ_ONCE(i915->gt.awake))
> +		return true;
> +
> +	for_each_engine(engine, i915, id) {
>  		if (!intel_engine_is_idle(engine))
>  			return false;
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list