[PATCH v13 15/21] drm/i915/guc: Add comment about update needed in GuC submission enable/disable for RPM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



During Runtime suspend/resume, GuC is allocating/destroying client vmas
that needs RPM reference and it leads to recursion. So RPM suspend/resume
will not work currently with GuC enabled. Clarify this TODO through
comment in i915_gem_runtime_suspend/resume while invoking uC
suspend/resume functions.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@xxxxxxxxx>
Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx>
Cc: Michał Winiarski <michal.winiarski@xxxxxxxxx>
Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
---
 drivers/gpu/drm/i915/i915_gem.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9e257e2..bcf3ca5 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2060,6 +2060,13 @@ int i915_gem_runtime_suspend(struct drm_i915_private *dev_priv)
 
 	mutex_lock(&dev_priv->drm.struct_mutex);
 
+	/*
+	 * TODO: Note that currently GuC submission enable/disable will
+	 * lead to GuC execbuf client vma allocation/free that
+	 * in turn involves RPM get/put hence this path will hang.
+	 * Once we update guc_submission_disable to only destroy doorbell
+	 * and not free/unmap client vmas, this will be fixed.
+	 */
 	ret = intel_uc_suspend(dev_priv);
 	if (ret)
 		goto out_unlock;
@@ -2113,6 +2120,13 @@ void i915_gem_runtime_resume(struct drm_i915_private *dev_priv)
 	i915_gem_init_swizzling(dev_priv);
 	i915_gem_restore_fences(dev_priv);
 
+	/*
+	 * TODO: Note that currently GuC submission enable/disable will
+	 * lead to GuC execbuf client vma allocation/free that
+	 * in turn involves RPM get/put hence this path will hang.
+	 * Once we update guc_submission_enable to only acquire doorbell
+	 * and not allocate/map client vmas, this will be fixed.
+	 */
 	intel_uc_runtime_resume(dev_priv);
 
 	mutex_unlock(&dev_priv->drm.struct_mutex);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux