[PATCH 1/6] drm/i915/guc: Update ggtt invalidate function prior to reset/suspend

Chris Wilson chris at chris-wilson.co.uk
Wed Aug 2 13:48:33 UTC 2017


Quoting Sagar Arun Kamble (2017-08-02 14:29:22)
> drv_hangman at error-state-basic and gem_exec_suspend at basic-s3 caught
> below kernel bug with GuC.
> 
> kernel BUG at drivers/gpu/drm/i915/i915_gem_gtt.c:3086!
> GEM_BUG_ON(i915->ggtt.invalidate != gen6_ggtt_invalidate);
> 
> This was happening since ggtt_disable_guc was not done prior to reset
> and suspend.
> 
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Tomi Sarvela <tomi.p.sarvela at intel.com>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 000a764..a1c450e 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2984,6 +2984,9 @@ void i915_gem_reset(struct drm_i915_private *dev_priv)
>                 if (INTEL_GEN(dev_priv) >= 6)
>                         gen6_rps_busy(dev_priv);
>         }
> +
> +       if (i915.enable_guc_loading)
> +               i915_ggtt_disable_guc(dev_priv);

Missing intel_guc_reset() ?

>  }
>  
>  void i915_gem_reset_finish_engine(struct intel_engine_cs *engine)
> @@ -4557,6 +4560,9 @@ int i915_gem_suspend(struct drm_i915_private *dev_priv)
>  
>         intel_guc_suspend(dev_priv);
>  
> +       if (i915.enable_guc_loading)
> +               i915_ggtt_disable_guc(dev_priv);
> +

Then why not part of intel_guc_suspend() ?
-Chris


More information about the Intel-gfx-trybot mailing list