diff mbox

[1/1] drm/i915: Move i915_gem_restore_fences to i915_gem_resume

Message ID 1506661116-12106-1-git-send-email-sagar.a.kamble@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

sagar.a.kamble@intel.com Sept. 29, 2017, 4:58 a.m. UTC
i915_gem_restore_fences is GEM resumption task hence it is moved to
i915_gem_resume from i915_restore_state.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c     | 1 +
 drivers/gpu/drm/i915/i915_suspend.c | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

Comments

Michal Wajdeczko Sept. 29, 2017, 6:52 a.m. UTC | #1
On Fri, 29 Sep 2017 06:58:36 +0200, Sagar Arun Kamble  
<sagar.a.kamble@intel.com> wrote:

> i915_gem_restore_fences is GEM resumption task hence it is moved to
> i915_gem_resume from i915_restore_state.
>
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---

Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Joonas Lahtinen Sept. 29, 2017, 7:08 a.m. UTC | #2
On Fri, 2017-09-29 at 10:28 +0530, Sagar Arun Kamble wrote:
> i915_gem_restore_fences is GEM resumption task hence it is moved to
> i915_gem_resume from i915_restore_state.
> 
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Yep, this is a more appropriate place. Locality to the display resume
was probably reason for the odd placement previously (it was added to
fix a bug of fences not being there for display resume).

Do we want to comment this requirement between i915_gem_resume and
i915_restore_state? Chris?

Anyway,

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas

PS. My guess seems to be correct according to git blame (skipping one
rename in between) info.

> ---
>  drivers/gpu/drm/i915/i915_gem.c     | 1 +
>  drivers/gpu/drm/i915/i915_suspend.c | 2 --
>  2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 73eeb6b..ab8c694 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4595,6 +4595,7 @@ void i915_gem_resume(struct drm_i915_private *dev_priv)
>  
>  	mutex_lock(&dev->struct_mutex);
>  	i915_gem_restore_gtt_mappings(dev_priv);
> +	i915_gem_restore_fences(dev_priv);
>  
>  	/* As we didn't flush the kernel context before suspend, we cannot
>  	 * guarantee that the context image is complete. So let's just reset
> diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
> index 5c86925a..8f3aa4d 100644
> --- a/drivers/gpu/drm/i915/i915_suspend.c
> +++ b/drivers/gpu/drm/i915/i915_suspend.c
> @@ -108,8 +108,6 @@ int i915_restore_state(struct drm_i915_private *dev_priv)
>  
>  	mutex_lock(&dev_priv->drm.struct_mutex);
>  
> -	i915_gem_restore_fences(dev_priv);
> -
>  	if (IS_GEN4(dev_priv))
>  		pci_write_config_word(pdev, GCDGMBUS,
>  				      dev_priv->regfile.saveGCDGMBUS);
Chris Wilson Sept. 29, 2017, 10:34 a.m. UTC | #3
Quoting Joonas Lahtinen (2017-09-29 08:08:31)
> On Fri, 2017-09-29 at 10:28 +0530, Sagar Arun Kamble wrote:
> > i915_gem_restore_fences is GEM resumption task hence it is moved to
> > i915_gem_resume from i915_restore_state.
> > 
> > Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > Cc: Michał Winiarski <michal.winiarski@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> 
> Yep, this is a more appropriate place. Locality to the display resume
> was probably reason for the odd placement previously (it was added to
> fix a bug of fences not being there for display resume).
> 
> Do we want to comment this requirement between i915_gem_resume and
> i915_restore_state? Chris?

I'd forgotten about restore_state. That's old school save-the-world,
restore-the-world for UMS code. Keep whittling it down and eventually it
will go away, everything we do now should be independent of
i915_suspend.c...
 
> Anyway,
> 
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Added to my queue for pushing, thanks for the patch and review.

> Regards, Joonas
> 
> PS. My guess seems to be correct according to git blame (skipping one
> rename in between) info.

Yes, debugging fences across resume has always been a case of fixing
display corruption. :|
-Chris
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 73eeb6b..ab8c694 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4595,6 +4595,7 @@  void i915_gem_resume(struct drm_i915_private *dev_priv)
 
 	mutex_lock(&dev->struct_mutex);
 	i915_gem_restore_gtt_mappings(dev_priv);
+	i915_gem_restore_fences(dev_priv);
 
 	/* As we didn't flush the kernel context before suspend, we cannot
 	 * guarantee that the context image is complete. So let's just reset
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 5c86925a..8f3aa4d 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -108,8 +108,6 @@  int i915_restore_state(struct drm_i915_private *dev_priv)
 
 	mutex_lock(&dev_priv->drm.struct_mutex);
 
-	i915_gem_restore_fences(dev_priv);
-
 	if (IS_GEN4(dev_priv))
 		pci_write_config_word(pdev, GCDGMBUS,
 				      dev_priv->regfile.saveGCDGMBUS);