[Intel-gfx] [PATCH 7/7] drm/i915: Simplify check for idleness in hangcheck

Mika Kuoppala mika.kuoppala at linux.intel.com
Wed Apr 6 09:32:29 UTC 2016


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

> [ text/plain ]
> Having fixed the tracking of the engine's last_submitted_seqno, we can
> now rely on it for detecting when the engine is idle (and not have to
> touch the requests pointer).
>
> Testcase: igt/gem_exec_whisper
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index c85eb8dec2dc..a56be4f92264 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2805,8 +2805,7 @@ static void gen8_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  static bool
>  ring_idle(struct intel_engine_cs *engine, u32 seqno)
>  {
> -	return (list_empty(&engine->request_list) ||
> -		i915_seqno_passed(seqno, engine->last_submitted_seqno));
> +	return i915_seqno_passed(seqno, engine->last_submitted_seqno);

My concern here is that we should move the write for the
last_submitted_seqno before we push the work into ring.

To guarantee that the driver never sees a seqno > last_submitted_seqno
on particular ring.

-Mika

>  }
>  
>  static bool
> -- 
> 2.8.0.rc3


More information about the Intel-gfx mailing list