[Intel-gfx] [PATCH 1/2] drm/i915: Stop touching hangcheck.seqno from intel_engine_init_global_seqno()
Mika Kuoppala
mika.kuoppala at linux.intel.com
Fri Apr 21 08:12:21 UTC 2017
Chris Wilson <chris at chris-wilson.co.uk> writes:
> The hangcheck runs independently to the main flow of seqno through the
> driver. However, we have an odd coupling of the seqno reset that is
> unwelcome, and if poked at just the right rate can cause spurious hangs
> (e.g. gem_exec_whisper) on an apparently idle engine.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
> drivers/gpu/drm/i915/intel_engine_cs.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
> index 7681d17ce454..f3cb7e931317 100644
> --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> @@ -265,6 +265,7 @@ void intel_engine_init_global_seqno(struct intel_engine_cs *engine, u32 seqno)
> struct drm_i915_private *dev_priv = engine->i915;
>
> GEM_BUG_ON(!intel_engine_is_idle(engine));
> + GEM_BUG_ON(i915_gem_active_isset(&engine->timeline->last_request));
>
> /* Our semaphore implementation is strictly monotonic (i.e. we proceed
> * so long as the semaphore value in the register/page is greater
> @@ -284,9 +285,6 @@ void intel_engine_init_global_seqno(struct intel_engine_cs *engine, u32 seqno)
> intel_write_status_page(engine, I915_GEM_HWS_INDEX, seqno);
> clear_bit(ENGINE_IRQ_BREADCRUMB, &engine->irq_posted);
>
> - GEM_BUG_ON(i915_gem_active_isset(&engine->timeline->last_request));
> - engine->hangcheck.seqno = seqno;
> -
> /* After manually advancing the seqno, fake the interrupt in case
> * there are any waiters for that seqno.
> */
> --
> 2.11.0
More information about the Intel-gfx
mailing list