[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