[PATCH 1/6] drm/i915/guc: Update ggtt invalidate function prior to reset/suspend
Sagar Arun Kamble
sagar.a.kamble at intel.com
Wed Aug 2 13:29:22 UTC 2017
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);
}
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);
+
cancel_delayed_work_sync(&dev_priv->gpu_error.hangcheck_work);
cancel_delayed_work_sync(&dev_priv->gt.retire_work);
--
1.9.1
More information about the Intel-gfx-trybot
mailing list